Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用连接中的WHERE NOT检索不同的数据?_Sql - Fatal编程技术网

Sql 使用连接中的WHERE NOT检索不同的数据?

Sql 使用连接中的WHERE NOT检索不同的数据?,sql,Sql,我需要检索那些没有学生注册的系的名称 表:部门 dept_id dept_name 1 IT 2 Electrical 3 Civil 4 Mechanical 5 Chemical 表:螺柱成员 f_name dept_id age AB 2 19 Rose 3 22 May 1

我需要检索那些没有学生注册的系的名称

表:部门

dept_id    dept_name
      1    IT
      2    Electrical
      3    Civil
      4    Mechanical
      5    Chemical  
表:螺柱成员

  f_name    dept_id   age
      AB         2      19 
    Rose         3      22
     May         1      20
    Noor         1      21
    Haya         1      19
    April        3      23
  Sakina         2      20
例如机械和化学的名称。我已经使用外部联接为它编写了这个查询(显式地可能?),但是它显示了一个错误

请告诉我为什么我不能写作:

SELECT dept_id, dept_name
FROM department
LEFT JOIN stud_member ON (WHERE NOT department.dept_id = stud_member.dept_id);

如果有人能告诉我正确答案,我将不胜感激

假设
stud\u成员中的
dept\u id
不能为
NULL
,这在
dept\u id
外键时为真

SELECT dept_id, dept_name
FROM department
WHERE dept_id NOT IN (SELECT dept_id FROM stud_member);
正如所建议的,使用“不存在”不会出现此问题

SELECT d.dept_id, d.dept_name
FROM department d
WHERE NOT EXISTS (SELECT * FROM stud_member s WHERE d.dept_id = s.dept_id);

您可以选择左联接右部分为空的所有部门

SELECT d.dept_id, d.dept_name
FROM department d
   LEFT JOIN stud_member sm ON d.dept_id = sm.dept_id
WHERE sm.dept_id IS NULL

选择。。。从t1左连接t1.a=t2.b..上的t2。
SQLSERVER或ORACLE或任何其他数据库如果有部门id为null的stud_成员,则的可能副本将返回空结果。不存在