题解 | #使用join查询方式找出没有分类的电影id以及名称#
使用join查询方式找出没有分类的电影id以及名称
http://www.nowcoder.com/practice/a158fa6e79274ac497832697b4b83658
这题确实绕到我了,我开始有点懵 错误示范 select distinct t3.film_id,t3.title from category t2 join film_category t1 join film t3 where t3.film_id not in (select film_id from film_category) and t2.category_id not in (select category_id from film_category); 分析一下,在MySQL中可以运行,线上也可以运行,但是结果不对 通过join关联但是没有没有关联条件,也就是没有on 会导致cross join 笛卡尔积
正确分析是通过film 和film_category进行左关联left join,去掉没有category_id的即可了
正确示范: select f.film_id "电影ID",f.title as "电影名称" from film f left join film_category fc on f.film_id = fc.film_id where fc.category_id is null;