1.IN 和 EXITS的差别
SELECT * FROM Table1 WHERE (栏位名称1,栏位名称2) IN (SELECT 栏位名称1,栏位名称2 FROM Table2)
SELECT Name FROM Table1 WHERE EXISTS (SELECT * FROM Table2 WHERE Table2.sn = Table1.sn AND Name = 'Wheels')
2.子查询可以单一传回值(单一栏位(Column),单一笔(row)),也可以传回单一栏位多笔资料(但必须改用IN)
3.我们也很常将子查询所得到的资料集合当作一个暂时的虚拟资料表给主查询使用
4.总之,EXISTS 是用来测试内查询有没有产生任何结果。如果有的话,系统就会执行外查询中的 SQL。若是没有的话,那整个 SQL 语句就不会产生任何结果。