ps:该篇文章是转载、以及自己的一些理解。
1.什么是exist关键字。
指定一个子查询,检测行的存在。遍历循环外表,然后看外表中的记录有没有和内表的数据一样的。匹配上就将结果放入结果集中,没有则不将结果放入结果集。
2.表结构
3.exist查询和in查询
exists查询:先看外表的值,再看内表值和外表值进行匹配,匹配上了则将结果(返回外表的字段列)放进结果集
SELECT
cno,
cname
FROM
course
WHERE
EXISTS (
SELECT
*
FROM
teacher
WHERE
teacher.tno = course.tno
);
in查询:先看内表的值,再看外表值和内表值进行匹配,匹配上了则将结果(返回外表的字段列)放进结果集
SELECT
DISTINCT
cno,
cname
FROM
course
WHERE
tno in (
SELECT
teacher.tno
FROM
teacher
);
以上内容转自:https://www.cnblogs.com/mytechblog/articles/2105785.html