我有四張桌子:人,教練,球員,遊戲。我需要編寫一個SQL SELECT語句,它將返回:我的ID,姓名,出生日期,加入日期,與我註冊的教練的姓名以及遊戲的日期,時間和持續時間。如何編寫一個從多個表中返回值的SQL SELECT語句?
人員表格包括:人員ID,姓名,出生日期和其他一些不必要的值。 教練表包括:coach id和一些其他不必要的值。 玩家表包含:玩家ID,加入日期,加入。 遊戲桌包括:教練ID,球員ID,比賽日期,比賽時間,比賽時間。
人桌基本上存儲了教練員和球員的所有名字和主要細節。這些表格鏈接正確。
我試過各種陳述,但我完全糊塗了自己。這個例子有點蹩腳,我有其他的東西,但不知道如何去做。
例如
SELECT person_id, full_name, date_of_birth, join_date
FROM (person JOIN player ON player_id = person_id)
WHERE person_id='100' AND person_id, full_name
FROM (person JOIN coach ON coach_id = person_id);
這些是CREATE語句:
CREATE TABLE person (
person_id CHAR(10) NOT NULL,
full_name VARCHAR(54) NOT NULL,
date_of_birth DATE,
sex CHAR(1),
PRIMARY KEY (person_id)
) engine innodb;
CREATE TABLE coach (
coach_id CHAR(10) NOT NULL,
phone_no CHAR(10) NOT NULL,
hall_no CHAR(4) NOT NULL,
PRIMARY KEY (coach_id),
FOREIGN KEY (coach_id) REFERENCES person (person_id)
) engine innodb;
CREATE TABLE player (
player_id CHAR(10) NOT NULL,
join_date DATE NOT NULL,
joined_with CHAR(10),
PRIMARY KEY (player_id),
FOREIGN KEY (player_id) REFERENCES person (person_id),
FOREIGN KEY (joined_with) REFERENCES coach (coach_id)
) engine innodb;
CREATE TABLE game (
coach_id CHAR(10) NOT NULL,
player_id CHAR(10) NOT NULL,
game_date DATE NOT NULL,
game_time TIME NOT NULL,
game_duration INTEGER DEFAULT 10,
PRIMARY KEY (coach_id, player_id, game_date, game_time),
FOREIGN KEY (coach_id) REFERENCES coach (coach_id),
FOREIGN KEY (player_id) REFERENCES player (player_id)
) engine innodb;
使用有效的語法將有所幫助。發佈*真實*錯誤消息和/或意外的輸出。但是,我建議閱讀一些「SQL連接教程」 - 這樣做可以制定一個更好的基礎問題。 – 2013-03-18 22:00:00
請將您的創建語句添加到問題中。 – 2013-03-18 22:00:23
我已經添加了創建語句。沒有錯誤信息,因爲我沒有聲明,我認爲你誤解了這個問題。感謝-1。我知道我應該自己做一些更多的研究,如果不是不可預見的情況,我會這樣做。我確信我可以自己解決這個問題,但我需要更多的時間,而我目前還沒有。 – Hazzle 2013-03-18 22:13:40