2016-08-03 4 views
1

Я пытаюсь сгруппировать результаты из трех разных таблиц с общим ключом.MySQL - группировка результатов из трех таблиц с общим ключом

В моей базе данных у меня есть три таблицы из трех команд - teamone, teamtwo, teamthree

Тогда у меня есть другая таблица, которая называется , к которому принадлежит эти команды.
Таблица лиги имеет два columns id, leaguename

Каждой таблица команды имеет columns id, league_id, team_name, team_function - and other columns specific к команде

Причины у меня есть три таблицы для трех команд, потому что, кроме первых четырех столбцов всех остальных столбцов отличаются из-за какой-то бизнес причины и данные не могут быть сохранены в одной таблице.

Я пытаюсь построить запрос, который будет выполнять следующие функции:

Список всех лигах

- Display all the teams associated with each league. 

Я пробовал различные соединения и союз варианты, но не мог заставить его работать. Любое предложение было бы здорово.

+2

Делитесь тем, что вы устали + делитесь таблицей show show code' + образец ввода + ожидаемый результат – 1000111

ответ

1

Попробуйте Этот запрос

SELECT l.leaguename, t1.team_name, t2.team_name, t3.team_name 
FROM league l 
INNER JOIN teamone t1 ON l.id = t1.league_id 
INNER JOIN teamtwo t2 ON l.id = t2.league_id 
INNER JOIN teamthree t3 ON l.id = t3.league_id 

ИЛИ

SELECT l.leaguename, t1.team_name, t2.team_name, t3.team_name 
FROM league l 
LEFT JOIN teamone t1 ON l.id = t1.league_id 
LEFT JOIN teamtwo t2 ON l.id = t2.league_id 
LEFT JOIN teamthree t3 ON l.id = t3.league_id 

Я считаю, LEFT JOIN обеспечить точный результат. Но попробуйте оба и проверьте.

Смежные вопросы