您好我有以下查询:
SELECT
cmfilm.*,
cmgenre.titel AS genretitel,
cmvertoning.*,
cmzaal.titel AS zaaltitel
FROM
cmfilm
LEFT JOIN cmvertoning ON cmvertoning.film_id=cmfilm.id
LEFT JOIN cmgenre ON cmfilm.genre_id=cmgenre.id
LEFT JOIN cmzaal ON cmvertoning.zaal_id=cmzaal.id
GROUP BY
cmfilm.titel
SORT BY
cmgenre.titel ASC
这似乎不起作用,排序部分存在问题,任何人都知道问题在哪里?
答案 0 :(得分:2)
如果你的目标是对结果进行排序,那么你不应该使用ORDER BY吗?
喜欢这个;
SELECT cmfilm.*, cmgenre.titel AS genretitel, cmvertoning.*, cmzaal.titel AS zaaltitel FROM cmfilm LEFT JOIN cmvertoning ON cmvertoning.film_id=cmfilm.id LEFT JOIN cmgenre ON cmfilm.genre_id=cmgenre.id LEFT JOIN cmzaal ON cmvertoning.zaal_id=cmzaal.id GROUP BY cmfilm.titel ORDER BY cmgenre.titel ASC
答案 1 :(得分:1)
在SQL中,您需要按所选的所有非聚合列进行分组,以获得可预测的结果。只是因为MySQL没有给你一个错误,所以没有做对。
您的cmfilm.titel
子句中似乎有group by
,但您没有聚合函数(总和/计数等),因此现在,您可能应该放弃group by
或者告诉我们更多关于你真正想要查询的内容。
答案 2 :(得分:0)
我认为它应该由ORDER BY代替SORT BY:
SELECT cmfilm.*, cmgenre.titel AS genretitel, cmvertoning.*, cmzaal.titel AS zaaltitel
FROM cmfilm
LEFT JOIN cmvertoning ON cmvertoning.film_id=cmfilm.id
LEFT JOIN cmgenre ON cmfilm.genre_id=cmgenre.id
LEFT JOIN cmzaal ON cmvertoning.zaal_id=cmzaal.id
GROUP BY cmfilm.titel
ORDER BY cmgenre.titel:
如果不是问题,请附上错误消息。