【发布时间】:2012-12-26 18:41:24
【问题描述】:
我有三个表 Table1、Table2 和 Table3。
Table1 与 Table2 具有一对多的关系。 Table2 与 Table3 是一对多的关系。
说table1有
-------------
t1key
-------------
a
b
Table2 has
-------------
t1key | t2key
--------------
a c
a d
b x
b y
Table 3
------------
t2key | t3key
-------------
c e
c f
c g
d h
d i
d j
x m
x n
x o
y p
y q
y r
我想要加入三个表,以便它只返回 table3 中 t2key 的第一个唯一匹配
join的结果应该是
a c e
a d h
b x m
b y p
目前我的应用程序对所有三个表进行连接,返回所有可能的行。我需要用上述条件过滤掉它。
SELECT * FROM Table1 AS T1
LEFT OUTER JOIN Table2 T2 ON T1.t1Key = T2.t1Key
LEFT OUTER JOIN Table2 T3 ON T2.t2Key = T3.t2Key
【问题讨论】:
-
请注意格式化。更好的是,编写一个模式(
CREATE TABLE和一些INSERT TABLE语句)或在SQLfiddle 上提供一个表示例。如果我们无法正确查看数据,就很难回答 SQL 问题。 -
请告诉我们哪个 RDBMS?
标签: sql