SQL Server 2016 表操作:子查询

2018-06-03  本文已影响47人  江湖十年
SELECT * FROM 表名 WHERE 字段名 IN (值1, 值2, 值3,...);
SELECT * FROM 表名 WHERE 字段名 IN (值1, 值2, 值3,...);

示例

-- IN
SELECT * FROM Student WHERE name IN ('name1','name2','管理员');

-- NOT IN
SELECT * FROM Student WHERE name NOT IN ('name1','name2','管理员');
image.png

需求:有 Student、Score 两张表,分别标识学生和分数,Score 从表的 StudentID 字段为外键,对应 Student 主表的 ID 字段,Student 表 ID 在 Score 表的 StudentID 中说明这个学生有成绩,不在其中的说明没有成绩,现在要查询所有有成绩的学生信息

-- 查询有分数的学生
SELECT * FROM Student WHERE ID IN (SELECT StudentID FROM Score);
image.png
SELECT a.name,a.age FROM Student as a WHERE EXISTS (SELECT * FROM Score as b WHERE a.ID=b.StudentID);
image.png
上一篇下一篇

猜你喜欢

热点阅读