Mysql 如何使此查询工作?
您好,我有以下查询:Mysql 如何使此查询工作?,mysql,Mysql,您好,我有以下查询: 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 JOI
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
这似乎不起作用,排序部分有问题,有人知道问题出在哪里吗?如果您的目标是对结果进行排序,那么您不应该使用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
如果您的目标是对结果进行排序,那么您不应该使用orderby吗 像这样,
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
我认为应该按顺序而不是按排序:
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:
如果这不是问题,请包括错误消息。我认为应该按顺序而不是按排序:
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:
如果这不是问题所在,请包含错误消息。在SQL中,您需要按选择的所有非聚合列进行分组,以获得可预测的结果。仅仅因为MySQL没有给你一个错误,并不意味着它是正确的
您的
group by
子句中似乎有cmfilm.titel
,但您没有聚合函数(sum/count等),因此现在,您可能应该删除该group by
,或者告诉我们更多关于您实际想要查询的内容。在SQL中,您需要根据您选择的所有非聚合列进行分组,以获得可预测的结果。仅仅因为MySQL没有给你一个错误,并不意味着它是正确的
您的
group by
子句中似乎有cmfilm.titel
,但您没有聚合函数(sum/count等),因此现在,您可能应该删除group by
,或者告诉我们更多关于您实际想要查询的内容。@Martin Liversage啊,同步编辑。抱歉,错误是:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解第行“SORT BY cmgenre.titel ASC”附近使用的正确语法8@Martin啊,同步编辑。抱歉,错误是:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第8行“SORT BY cmgenre.titel ASC”附近使用的正确语法