私は約 20 のテーブルを持つプレーヤーのデータベースを持っています。特定の選手のデビュー(初出場)を把握しようとしています。データベースには、「外観」と「置換」の 2 つの別個のテーブルがあります。最初に、クエリを個別に正しく取得することができました。つまり、あるクエリで最初に出現した詳細を取得し、別のクエリで置換の詳細を取得することができました。両方のクエリを 1 つにまとめるためにいくつかの手順を試しましたが、試行するたびにいくつかのエラーが発生しました。はい、私もたくさんのグーグルをしました。個別の手順は次のとおりです。
プレーヤーの完全なデビューの詳細を表示します。
SELECT DATE( MatchDateTime ) , tplss_opponents.OpponentName, CONCAT(MatchGoals,"-", MatchGoalsOpponent), PlayerLastName
FROM tplss_matches
JOIN tplss_opponents ON tplss_matches.MatchOpponent = tplss_opponents.opponentID
JOIN tplss_appearances ON tplss_matches.MatchID = tplss_appearances.AppearanceMatchID
JOIN tplss_players ON tplss_appearances.AppearancePlayerID= tplss_players.PlayerID
WHERE `PlayerLastName` = "Leo Messi"
ORDER BY `MatchDateTime` ASC
LIMIT 1;
選手のデビュー詳細を表示します。
SELECT DATE( MatchDateTime ) , tplss_opponents.OpponentName, CONCAT(MatchGoals,"-", MatchGoalsOpponent), PlayerLastName
FROM tplss_matches
JOIN tplss_opponents ON tplss_matches.MatchOpponent = tplss_opponents.opponentID
JOIN tplss_substitutions ON tplss_matches.MatchID = tplss_substitutions.SubstitutionMatchID
JOIN tplss_players ON tplss_substitutions.SubstitutionPlayerIDIn= tplss_players.PlayerID
WHERE `PlayerLastName` = "Leo Messi"
ORDER BY `MatchDateTime` ASC
LIMIT 1;
私の目的は、スターターまたはベンチからの交代のいずれか早い方で、試合でプレーしたプレーヤーの最初の記録を見つけることです. これは一般に「デビュー」と呼ばれます。
クエリ出力のサンプル:
DATE OpponentName result PlayerLastName
2005-08-17 ハンガリー 2-1 リオネル・メッシ
ヘルプやガイダンスに感謝します。