我有一个名为BDS.cursuri的表,该表具有列"id_cadru", "tip_curs"
。记录示例:
我已经尝试过了:
id_cadru tip_curs
8 modul I
5 modul II
8 modul III
6 modul III
SELECT BDS.cursuri.ID_CADRU FROM BDS.cursuri,
(SELECT * FROM BDS.cursuri where TIP_CURS = "modul I") AS cu_m1
where BDS.cursuri.ID_CADRU NOT IN (cu_m1.ID_CADRU);
我期望输出5和6,这意味着没有tip_curs='modul I'
的记录,因为拥有id_cadru=8
的人已经有了tip_curs='modul I'
,但是我也得到了输出8。我该如何解决?谢谢。
答案 0 :(得分:0)
我们可以在此处尝试使用EXISTS
子句:
SELECT t1.id_cadru, t1.tip_curs
FROM BDS.cursuri t1
WHERE NOT EXISTS (SELECT 1 FROM BDS.cursuri t2
WHERE t1.id_cadru = t2.id_cadru AND t2.tip_curs = 'model I');
答案 1 :(得分:0)
您应该在不加入联接的子查询中使用NOT IN
SELECT BDS.cursuri.ID_CADRU
FROM BDS.cursuri
where BDS.cursuri.ID_CADRU NOT IN (
SELECT id FROM BDS.cursuri where TIP_CURS = "modul I"
);
或对同一子查询使用不存在子句
答案 2 :(得分:0)
尝试以下查询
SELECT BDS.cursuri.ID_CADRU
FROM BDS.cursuri
where BDS.cursuri.ID_CADRU != (
SELECT ID_CADRU FROM BDS.cursuri where TIP_CURS = "modul I"
);
答案 3 :(得分:0)
尝试一下
它将返回id_cadru 5,6,8
和modul II
,modul III
。
从BDS.cursuri中选择id_cadru,tip_curs,其中id_cadru位于(选择 与BDS.cursuri截然不同(id_cadru),其中tip_curs进入('modul II','modul III')
答案 4 :(得分:0)
您可以使用以下查询来实现
选择* 来自BDS.cursuri id_cadru不在的位置(从BDS.cursuri中选择id_cadru,
tip_curs
='调制I') 并且tip_curs
不输入(“调制I”)
如果您有任何困惑,可以问here
希望会有所帮助。