2016-06-07 88 views
0

我有一個主表'Player'和'PlayerId'作爲primary keyMySQL查詢從多個表中獲取記錄

我有三個錶鏈接到'player'表。一張表可能比另一張表有更多的記錄。我需要從每張表格的不同行中獲取播放器的所有記錄。

PLAYER表

PlayerId int(PK), 
PlayerName Varchar(25) 

STARTUP表

PlayerId int(FK), 
STARTUPDATE Date 

REBOOT表

PlayerId int(FK), 
REBOOTDATE Date 

SHUTDOWN表

PlayerId int(FK), 
SHUTDOWN Date 

如下面給出的查詢:

PLAYERNAME STARTUPDATE  REBOOTDATE  SHUTDOWNDATE 
PLAYER1  12/2/2015 11:57 12/2/2015 17:30 12/2/2015 20:00 
PLAYER1  12/2/2015 14:57 12/2/2015 15:30 
PLAYER1  12/2/2015 12:30 
PLAYER1  12/2/2015 10:30 
+2

使用[JOIN](http://dev.mysql.com/doc/refman/5.7/en/join.html) – Arulkumar

+0

您可以使用加入,請註明您的表中只有我們可以寫查詢 –

+0

其他三個表是否有'PlayerId'作爲外鍵?或者'Player'和其他三張桌子之間的關係密鑰是什麼? – Arulkumar

回答

0

看到您預期的結果,該PlayerId不匹配的所有表。在這種情況下,你需要使用LEFT JOIN

SELECT PL.PlayerName, ST.StartupDate, RE.RebootDate, SH.ShutDownDate 
FROM Player PL 
LEFT JOIN Startup ST ON ST.PlayerId = PL.PlayerId 
LEFT JOIN Reboot RE ON RE.PlayerId = PL.PlayerId 
LEFT JOIN Shutdown SH ON SH.PlayerId = PL.PlayerId 
相關問題