我有两张桌子:
助洗剂
b_id fk_c_id
1 1
2 1
3 1
4 1
5 1
6 2
7 2
subbuilders
fk_b_id sb_id
1 2
1 3
1 4
2 5
6 7
我希望子建设者表中不存在的Distinct b_id
,并且必须具有相同的 fk_c_id
我创建:
SELECT DISTINCT b.id FROM pms_builder_to_subbuilders bsb
LEFT JOIN pms_builders b ON b.id = bsb.sb_id WHERE b.fk_c_id = '1'
但它显示来自子建基者的独特记录。
答案 0 :(得分:1)
您可以使用以下查询获得所需的结果:
SELECT DISTINCT b.b_id FROM builders b LEFT JOIN subbuilders sb ON sb.fk_b_id = b.b_id WHERE b.fk_c_id = '1' AND ISNULL(fk_b_id);
答案 1 :(得分:0)
我想你想要这个查询:
SELECT DISTINCT b_ID
FROM builders
WHERE b_ID NOT IN
(SELECT DISTINCT fk_b_id FROM subbuilders)
但它返回
b_ID
========
3
4
5
7
但我不明白你的陈述:must have same fk_c_id
。那是什么意思?
b_id = fk_c_id
如果是这种情况,则不会返回任何行,因为只有记录1
具有相同的b_ID和fk_c_id,但存在于表subbuilders