【发布时间】:2019-04-20 22:16:38
【问题描述】:
我必须做一些计时。有些员工是第一队的一员,有些是第二队的一员。我需要显示一个简单的表格,其中包含登录者和登录时间以及其他一些基本信息。
如果两个表 team1 和 team2 具有相同的列(first_name、last_name 和 date),但绝对可以保证这些表中只有一个表每行会返回数据我如何避免使用一堆别名(first_name AS team1_first_name) 并且总是让 SQL 返回first_name?
一个示例查询:
SELECT *
FROM associates AS ac
LEFT JOIN team1 AS t1 ON (t1.id = ac.team1)
LEFT JOIN team2 AS t2 ON (t2.id = ac.team2)
ORDER BY ac.date DESC LIMIT 100;
【问题讨论】:
-
我认为您可以将 union 与 distinct 一起使用。当你让左加入team2时,你需要改变你的“on”(t2.id = ac.team2)。
-
在
associates中,两个表都只有一个外键team1,还是打错了? -
@evilGenius 我会调查的。
-
@forpas 我想我会错过一些小问题,错字。
-
@GordonLinoff 已经收到了有效的答案,不过还是谢谢你。基本上
SELECT来自两个不同表的完全相同的数据/列。