我正在尝试在 CF/SQL 中做一些非常简单的事情,但似乎无法弄清楚我做错了什么。
我有这些表:
movies genres actors moviesGenres moviesActors
------ ------ ------ ------------ ------------
movieId genreId actorId id id
title name fname movie movie
lname genre actor
我正在尝试编写一个简单地列出所有电影的查询,其中包括每部电影的类型(可以多选)和每部电影的演员(同样,可以多选)。
当我编写查询以仅包含流派时,一切正常。我使用查询本身,按movieId分组,然后围绕流派单独分组。
但是当我尝试将演员包括在内时,一切都崩溃了,似乎分组崩溃了。
这是两个连接的 SQL 查询:
SELECT m.movieId, m.title, m.releaseDate, m.description, g.name, a.fname, a.lname
FROM movies m
INNER JOIN genres g ON g.genreId IN (SELECT genre FROM moviesGenres WHERE movie = m.movieId)
INNER JOIN actors a ON a.actorID IN (SELECT actor FROM moviesActors WHERE movie = m.movieId)
ORDER BY m.title
提前感谢您的帮助!
更新:
Leigh 和 Mark 提供的查询似乎总体上有效,但我仍然看到演员在 . 这是我的代码:
<tbody>
<cfoutput query="variables.movieList" group="movieId">
<tr>
<td><a href="##">#title#</a></td>
<td><cfoutput group="name">#name# | </cfoutput></td>
<td><cfoutput group="actorId">#actorId# | </cfoutput></td>
</tr>
</cfoutput>
</tbody>
我也尝试过没有对最终标签进行分组,但这没有用。请注意,为了简化测试,我将 a.lName 和 a.fName 更改为 a.actorId。
示例行如下所示:
The Godfather Action | Drama | 1 | 2 | 1 | 2 |