【问题标题】:sql substitute name_id with names from another tablesql 用另一个表中的名称替换 name_id
【发布时间】:2015-04-13 11:33:00
【问题描述】:

我有三张桌子:

match:
id, team1_id, team2_id, tournament_id
333, 4772, 4708, 4508

teams:
id, name
4772, Wolves
4708, Bolton

tour:
id, name
4508, Premier League

我想将其作为 match 的查询来执行 - 其中 team1_id、team2_id、tournament_id 被替换为来自 table teams 和 tour 的值。

example: "select * from match where id=333" 应该会导致:

333, Wolves, Bolton, Premier League

表格也有数万行..

【问题讨论】:

  • 你需要加入团队两次(每个团队一次),还要加入巡回赛。

标签: sql substitution


【解决方案1】:

试试这个:

select * from match m 
inner join teams t on m.team1_id=t.id 
inner join teams s on m.team2_id=s.id 
inner join tour o on o.id = m.tournament_id 
where m.id=333

【讨论】:

  • 谢谢。这对我帮助很大。这似乎有效: select * from match m inner join teams t on m.team1_id=t.id inner join teams s on m.team2_id=s.id inner join tour o on o.id = m.tournament_id where m.id =333
  • @whydoesitnotwork:- 不客气!如果对您有帮助,您可以接受答案。单击右刻度标记时变为绿色
【解决方案2】:

尝试使用查询

select m.id, t1.name, t2.name,t3.name 
from match m inner join teams t1 on m.team1_id=t1.id 
inner join teams t2 on m.team2_id=t2.id 
inner join m.tournament_id=t3.id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多