我有 2 张桌子:
表格1
父(varchar)子(varchar)
表2
C1(varchar) PC (varchar)
样本数据:
要求 - 我需要 Table2.C1 列的 Table2.PC = Table1.Child 值,但子值必须与 Table1.Parent 的值不同。
我在mysql中使用以下查询:
select distinct(C1),Child,PC
from Table2 inner join Table1
on Table2.PC=Table1.Child
where Table1.Child not in (select Parent from Table1);
它给出了空集,但 Child 中的值与 PC 中的值相同,但 Parent 中没有。
我哪里错了?
“where”子句排除了 Table1 中的所有内容
如果您想要 SQL 查询示例,请在问题中提供示例数据
你在找这个吗?
输出:
这是SQLFiddle演示
使用显示的数据运行查询会给我 1 个结果,其中 C1 = mono、Child = qwer 和 PC = qwer
根据查询,您显示的数据应提供该结果。
如果您没有得到相同的结果,我的猜测是您的表中的数据比您在此处显示的更多,这会过滤掉结果;或者还有其他一些你没有提到的因素。