MySQL查询从多个表中获取记录

时间:2016-06-07 04:08:04

标签: mysql

我有一张主表' Player'与' PlayerId'作为primary key

我有三个表格与' player'表。一个表可能比另一个表具有更多记录。我需要从每个表中获取不同行中玩家的所有记录。

球员表

PlayerId int(PK), 
PlayerName Varchar(25)

STARTUP表

PlayerId int(FK), 
STARTUPDATE Date

重新启动表

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 

1 个答案:

答案 0 :(得分: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