重复的结果具有被这样相关的四个表:我如何消除加入SQL语句
TABLE A: 1 to many with TABLE B
TABLE B: 1 to many with TABLE C
TABLE D: many to 1 with TABLE B
我想创建一个结果集,它不包含任何重复。
SELECT A.f1
A.f2
B.f1
C.f1
D.f1
from A LEFT JOIN (B INNER JOIN D on D.fk_b = B.id) on A.id = B.fk_a
LEFT JOIN C on C.fk_b = B.id
有些但不是全部记录是重复的。只有具有相同FK的TABLE D
到TABLE B
的记录。
如果有2个相同的D.fk_B
字段,那么我想只选择第一个。我的INNER JOIN
会变成类似于:
B INNER JOIN TOP 1 D on.....
但这不可能?
谢谢!
如果他们确切的重复,你应该使用'选择DISTINCT' 。 – Viruzzo
no there not exact duplicates :( – jorrebor
定义你的意思是“不完整的重复” – onedaywhen