php – 表的条件sql查询
发布时间:2020-12-13 14:14:09 所属栏目:PHP教程 来源:网络整理
导读:我必须从SQL运行查询.也许太容易或不容易,但不幸的是我不懂SQL.所以这是我的表: 影片 id | movie_name------------1 | prometheus 名 id | person_name-----------------1 | Ridley Scott2 | Noomi Rapace3 | Michael Fassbender4 | Charlize Theron5 | Dam
我必须从SQL运行查询.也许太容易或不容易,但不幸的是我不懂SQL.所以这是我的表:
影片 id | movie_name ------------ 1 | prometheus 名 id | person_name ----------------- 1 | Ridley Scott 2 | Noomi Rapace 3 | Michael Fassbender 4 | Charlize Theron 5 | Damon Lindelof films_cast id | film_id | person_id | type ------------------------------- 1 | 1 | 1 | director 2 | 1 | 2 | actor 3 | 1 | 3 | actor 4 | 1 | 4 | actor 5 | 1 | 5 | writer 我怎样才能从这些表中得出这样的结论: film_archive id | movie_name | director | writer | cast --------------------------------------------------------------------------------------- 1 | prometheus | Ridley Scott | Damon Lindelof | Noomi Rapace,Michael Fassbender,Charlize Theron 谢谢!
您需要
join表,然后在给定合适条件的情况下按名称列执行
GROUP_CONCAT() 聚合的电影分组:
SELECT f.id,f.movie_name,GROUP_CONCAT(IF(c.type='director',n.person_name,NULL)) AS director,GROUP_CONCAT(IF(c.type='writer',NULL)) AS writer,GROUP_CONCAT(IF(c.type='actor',NULL)) AS cast FROM films f LEFT JOIN films_cast c ON c.film_id = f.id LEFT JOIN names n ON c.person_id = n.id GROUP BY f.id 在sqlfiddle上看到它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |