gameテーブル
goalテーブル
eteamテーブル
抽出結果
SQL:
SELECT goal.player,goal. teamid,game.mdate
FROM game JOIN goal ON (id=matchid)
WHERE goal.teamid = 'GER'
このSQLはJOINをつかってgoalとgameの2つのtab leからplayer, teamid, mdateの3つの列の情報を取得している。一行目のSELECTで書いているのは結果取得後、どのフィールド(列) の情報を表示するかである。ここにはplayer, teamid, mdateの3つが選択されているので(条件にマッチする) player, teamid, mdateの3行に格納されている情報がすべて表示される。 goal.playerという書き方をされているが、これは「 goalというテーブルのplayerというフィールド」 という意味である。
SELECT goal.player,goal.teamid,game. mdate
FROM game JOIN goal ON (id=matchid)
WHERE goal.teamid = 'GER'
2行目はgameテーブルとgoalテーブルを( gameテーブルの)idと(goalテーブルの) matchidをもとにJOINするということを示している。 これによって2つのテーブルを一度に検索し、 2つのテーブルから検索した結果を表示することができる。
SELECT goal.player,goal.teamid,game. mdate
FROM game JOIN goal ON (id=matchid)
WHERE goal.teamid = 'GER'
3行目のWHERE句は検索の条件を指定している。goal. teamidがGERに等しい国、という意味の条件である。
これを実行することで「 gameとgoalの2つのテーブルをidとmatchidをも とにつなぎ、 この2つのテーブルのうちteamidがGERに等しいデータ」 をすべて取得することができる。
SELECT goal.player,goal.teamid,game.mdate
FROM game JOIN goal ON (id=matchid)
WHERE goal.teamid = 'GER'
これを日本語にするとこうなる。
「player, teamid, mdateというフィールドを
gameとgoalの2つのテーブルをidとmatchidをもとに連結させたなかから
teamidがGERのデータをすべて抽出」
参考文献
http://sqlzoo.net/wiki/The_JOIN_operation