exists型子查询:是指把外层sql的结果,拿到内层sql去测试,如果内层sql成立,则该行取出。
这里是goods表中的所有数据:
(1)根据Ecshop中shop数据库中将category导入自己新建的catergory表中
(2)通过exists子查询实现只把有商品的栏目取出来,也就意味将除了1、6、7、9、10、12栏目的取出来。
select cat_id,cat_name from category where exists (select * from goods where goods.cat_id = category.cat_id);
也就是将外层的category.cat_id其结果放入内层的where语句中,即
where exists (select * from goods where goods.cat_id = category.cat_id);
进行测试,即如果select * from goods where goods.cat_id = category.cat_id能取出结果,即为真,则整个语句取出相应的数据。