がmatch
テーブルから行を取得します。あなたはteam1はリバプールやアーセナル、またはその逆team2
SELECT m.matchid
FROM match m
WHERE m.date = TO_DATE('2016-03-28','YYYY-MM-DD')
AND m.team1 IN ('Liverpool','Arsenal')
AND m.team2 IN ('Liverpool','Arsenal')
AND m.team1 <> m.team2
について次の場合は、ザ・プレイヤー・テーブルに結合を実行
SELECT m.matchid
FROM (SELECT 1 AS i UNION ALL SELECT 2) d
CROSS
JOIN match m
WHERE m.date = TO_DATE('2016-03-28','YYYY-MM-DD')
AND m.team1 IN ('Liverpool','Arsenal')
AND m.team2 IN ('Liverpool','Arsenal')
AND m.team1 <> m.team2
...行の2つのコピーを作るわからない場合、私たちは一致するteamnameの列を使用するように見えます。
SELECT CASE WHEN d.i = 1 THEN m.team1 ELSE m.team2 END AS teamname
, p.playername
FROM (SELECT 1 AS i UNION ALL SELECT 2) d
JOIN match m
ON m.date = TO_DATE('2016-03-28','YYYY-MM-DD')
AND m.team1 IN ('Liverpool','Arsenal')
AND m.team2 IN ('Liverpool','Arsenal')
AND m.team1 <> m.team2
LEFT
JOIN players p
ON p.teamname IN (m.team1, m.team2)
ORDER BY d.i, p.playerid
フォーマット済みの投稿。質問は依然として非常に低品質であり、OPは試行錯誤して編集する必要があります。 –
ありがとうございました。 –