我想要做的是相互匹配行并排除所有匹配多个时间的行。SQL显示不重复的行LEFT JOIN
数据集(请记住,这是简化和有我需要从查询检索更多的信息)
表1:
NAME PART1 PART2
ABC FirstABC SecondABC
BAC FirstBAC SecondBAC
BAC SecondBAC FirstBAC
CBA FirstCBA SecondCBA
DAE FirstDAE SecondDAE
EDA FirstEDA SecondEDA
表2:
ITEM1 ITEM2
FirstABC SecondABC
FirstBAC SecondBAC
FirstBAC SecondBAC
FirstCBA SecondCBA
FirstDAE SecondDAE
FirstEDA SecondEDA
我到目前为止有:
SELECT *
FROM TOMATCH as T
LEFT JOIN AGAINST as A
ON (
T.Part1 = A.Item1
OR T.Part2 = A.Item1
OR T.Part1 = A.Item2
OR T.Part2 = A.Item2
)
我在寻找什么结果:
NAME PART1 PART2 ITEM1 ITEM2
ABC FirstABC SecondABC FirstABC SecondABC
CBA FirstCBA SecondCBA FirstCBA SecondCBA
DAE FirstDAE SecondDAE FirstDAE SecondDAE
EDA FirstEDA SecondEDA FirstEDA SecondEDA
怎么样SELECT DISTINCT? –
理想的结果尚不清楚。什么是重复的?使用'DISTINCT',你会得到[this](http://sqlfiddle.com/#!6/87dc5/4/0),这是不同的结果。 **编辑**你有主键吗? –
想要的结果是排除重复的结果(如果我没有理解的话)。独特将避免重复,但显示数据“哪些将被复制而没有明显的”。 –