输出所有上映时间在“2010-06-01”和“2020-07-01”之间的电影信息,输出格式为:“电影名/电影演员/电影长度/电影公司/电影上映时间/电影票价”,要求所显示的电影演员在电影中出现时间大于40分钟,若电影演员有多个,则用逗号隔开。
时间: 2024-01-12 15:03:33 浏览: 26
好的,你可以通过以下 SQL 语句查询满足要求的电影信息:
```sql
SELECT
m.moviename AS '电影名',
GROUP_CONCAT(DISTINCT a.actorname SEPARATOR ',') AS '电影演员',
m.movielength AS '电影长度',
m.moviecompany AS '电影公司',
m.showtime AS '电影上映时间',
m.ticketprice AS '电影票价'
FROM
movie AS m
JOIN
movie_actor AS ma ON m.movieid = ma.movieid
JOIN
actor AS a ON ma.actorid = a.actorid
WHERE
m.showtime >= '2010-06-01'
AND m.showtime <= '2020-07-01'
GROUP BY m.movieid
HAVING SUM(ma.playtime) >= 40
ORDER BY m.showtime;
```
这个 SQL 语句使用了 INNER JOIN 把电影表 `movie`,电影演员表 `movie_actor` 和演员表 `actor` 关联起来,然后根据 `showtime` 字段筛选出符合时间要求的电影,再根据 `playtime` 字段判断电影演员出现时间是否大于40分钟,最后按照 `showtime` 字段升序排列输出。同时为了避免电影演员重复,使用了 `GROUP BY` 和 `GROUP_CONCAT` 函数将电影演员合并成一个字段输出。