0
私は4つのテーブルを持っています:チームプレーヤーとプレーヤーの誕生(私は都市と国を持っています)。クエリの選択Oracle 11g
私は4つのテーブルを持っています:チームプレーヤーとプレーヤーの誕生(私は都市と国を持っています)。クエリの選択Oracle 11g
"チーム"テーブルを2回取得し、その間に参加する必要があります。トリックは「Birth_Place1.Country = Birth_Place2.Country」WHERE句である:これは正確に正しい要求ですが、あなたのアイデアを得る場合
SELECT Game_Date,
Player.First_Name || ' ' || Player.Last_Name AS "PLAYER NAME",
UPPER(Team1.Team_Name) AS "HOME TEAM",
UPPER(Team2.Team_Name) AS "VISITING TEAM",
Team1.Team_City ||' '|| Team1.Team_Name as "TEAM",
Birth_Place1.Country
FROM Game
JOIN Team Team1 ON Game.Team_Home_ID = Team1.Team_ID
JOIN Team Team2 ON Game.Team_Visitor_ID = Team2.Team_ID
JOIN Player Player1 ON Player1.Team_ID = Team1.Team_ID
JOIN Player Player2 ON Player2.Team_ID = Team2.Team_ID
JOIN Birth_Place Birth_Place1 ON Birth_Place1.Birth_Place_ID = Player1.Birth_Place_ID
JOIN Birth_Place Birth_Place2 ON Birth_Place2.Birth_Place_ID = Player2.Birth_Place_ID
WHERE Birth_Place1.Country = Birth_Place2.Country
AND Season = '2015-2016'
AND Game_Date = '10-10-2015'
AND Birth_Place1.Country NOT IN ('CAN', 'USA')
ORDER BY Birth_Place1.Country;
わかりません。
また、2カ国のみを除外したように見えるので、WHERE句を国に書き直しました。
あなたのアーキテクチャを少し、特にBirth_Placeテーブルを見直すことを検討することがあります。プレーヤの国をプレーヤテーブルで知っていることは、フィルタとして使用する場合に意味があると思います。
ありがとう、それは正しいプレーヤーが表示されているが、各プレーヤーが2回表示されていることを除いて動作します – Carlos
あなたは一度離れて、一度家庭として、とにかく、SELECTの後にDISTINCTキーワードを追加して十分かどうか確認できますか? –
いいえ、最初の選手は4回出場しますが、スウェーデンの選手はいいです – Carlos