2016-06-07 2 views
0

У меня есть главная таблица 'Player' с 'PlayerId' как primary key.Запрос MySQL для получения записей из нескольких таблиц

У меня есть три таблицы, связанные с таблицей «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 
+2

Используйте [РЕГИСТРИРУЙТЕСЬ] (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 
Смежные вопросы