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”附近使用的正确语法