我有三个桌子。
Code Value
1 | b
1 | c
3 | c
Value
b
Value
c
我想从表A中编写对“代码”的查询。
条件是“代码”应包含值“ c”。
如果“代码”包含值“ b”,则不应查询此代码。 (也就是说,代码1具有值b和值c,因此需要排除代码1)
但是我无法进行该查询。
预期结果可能是“ 3”
我想使用相交,但是MySql还不包含此功能。 所以我尝试了一些代码。 我确定我的代码有问题,但是我不知道如何解决。
SELECT DISTINCT A.*
FROM A B C
WHERE A.Value IN
(SELECT Value FROM B)
AND A.Value NOT IN
(SELECT Value FROM C);
您能给我一些有关我的问题的提示吗?
答案 0 :(得分:0)
问题是您要加入a,b和c。你几乎明白了。
select distinct a.value
from a
where a.value in (select value from b)
and a.value not in (select value from c)
或者您可以使用join
select *
from a
inner join b where b.value = a.value
and not in (select value from c)