【发布时间】:2012-07-18 17:39:08
【问题描述】:
我有一个 sql 查询问题。两张表:
位置
lid State
--- -----
1 MI
2 FL
3 CA
时间
tid lid
a 1
b 1
c 2
d 2
e 3
f 3
现在我想连接这两个表。如果我这样做:
select l.lid, l.state, t.tid
from location l, time t
where l.lid=t.lid
然后它会给我这个结果:
lid state tid
--- ----- ---
1 MI a
1 MI b
2 FL c
2 FL d
3 CA e
3 CA f
我想得到这个结果,而不是得到这个:
lid state tid1 tid2
--- ----- ---- ----
1 MI a b
2 FL c d
3 CA e f
我应该如何编写查询?
另外,假设在 Time 表中,每个盖子会有正好两条记录。
【问题讨论】:
-
只有两个 tid 匹配吗?或者它可以是任何数字?
-
Jodaka 问题的答案将决定您的问题的答案,JohnnySun。
-
总是正好有 2 个匹配?从来不只有一个?
-
你需要停止使用隐式连接,它们是一种非常糟糕的做法和 SQL Anitpattern。它们在 20 年前被显式联接所取代,是时候停止使用这种 u=过时且糟糕的做法了。
标签: sql