[英]MySQL query to get records from multiple tables
我有一個主表' Player
'和' PlayerId
'作為primary key
。
我有三個表鏈接到“ player
”表。 一個表可能比另一個表具有更多的記錄。 我需要從每個表的不同行中獲取播放器的所有記錄。
玩家桌
PlayerId int(PK),
PlayerName Varchar(25)
啟動表
PlayerId int(FK),
STARTUPDATE Date
重新啟動表
PlayerId int(FK),
REBOOTDATE Date
關機表
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
查看您的預期結果,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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.