【问题标题】:MySQL - Grouping results from three tables with a shared keyMySQL - 使用共享键对三个表的结果进行分组
【发布时间】:2016-08-03 04:27:42
【问题描述】:

我正在尝试使用共享键对来自三个不同表的结果进行分组。

在我的数据库中,我有来自三个团队的三个表 - teamone, teamtwo, teamthree

然后我有另一个名为 league 的表,这些团队属于该表。
排行榜有两个columns id, leaguename

每个团队表都有团队的columns id, league_id, team_name, team_function - and other columns specific

我之所以为三个团队设置三个表,是因为除了前四列之外,由于某些业务原因,所有其他列都不同,并且数据不能存储在同一个表中。

我正在尝试构建一个执行以下操作的查询:

列出所有联赛

- Display all the teams associated with each league.

我尝试了各种加入和联合选项,但无法成功。任何建议都会很棒。

【问题讨论】:

  • 分享你已经厌倦的东西+分享show create table <table_name> code+样本输入+预期输出

标签: mysql


【解决方案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 提供准确的结果。但尝试两者并检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    相关资源
    最近更新 更多