【发布时间】:2013-06-27 17:54:00
【问题描述】:
我在 MySQL 中创建了一个相对简单的查询,根据名字和姓氏的匹配位置在三个表上给我一个JOIN。从那里,我想编写另一个查询,然后只向我显示 没有 从 JOIN 匹配的记录——但我不知道该怎么做。我假设它与使用涉及 NOT IN 之类的子查询和我的原始查询有关,但我无法得到它给我想要的结果。
这是我试图提出的解决方法,部分功能正常:
SELECT *,
if(t2.first=t1.first AND t2.last=t1.last, "Match", "No Match") AS "t2 Match",
if(t3.first=t1.first AND t3.last=t1.last, "Match", "No Match") AS "t3 Match"
FROM t1
LEFT JOIN t2 ON t2.first=t1.first AND t2.last=t1.last
LEFT JOIN t3 ON t3.first=t1.first AND t3.last=t1.last
WHERE if(t2.first=t1.first AND t2.last=t1.last, "Match", "No Match")="No Match"
OR if(t3.first=t1.first AND t3.last=t1.last, "Match", "No Match")="No Match";
我觉得这是相当简单直接的事情,但我没有得到正确的结果。有人可以帮忙吗?
谢谢!
【问题讨论】: