gpt4 book ai didi

对多对多外连接的mysql查询产生重复

转载 作者:行者123 更新时间:2023-11-30 22:48:16 24 4
gpt4 key购买 nike

一个查询外连接问题。我有这三个表:
表格文章(ID,文章标题,文章正文) - 等等。其他列在这里无关紧要。
表格类别(ID,姓名)
表格文章分类(文章编号,类别编号,索引 articleid, categoryid)
当我执行以下查询时,我会得到任何具有多个类别的文章的重复项查询:

SELECT category.name AS categoryname
, article.id as articleid, article.articletitle AS articletitle, article.articletext as articletext, article.articlev as articlev, article.visible as visible
, GROUP_CONCAT(othercategory.name) AS othercategories
FROM category
LEFT OUTER
JOIN articlecategory
ON articlecategory.categoryid = category.id
LEFT OUTER
JOIN article
ON article.id = articlecategory.articleid
LEFT OUTER
JOIN articlecategory AS otherarticlecategory
ON otherarticlecategory.articleid = articlecategory.articleid
LEFT OUTER
JOIN category AS othercategory
ON othercategory.id = otherarticlecategory.categoryid

GROUP
BY category.name ASC
, article.articletitle ASC';

结果是这样的:

foreach
article 1
othercategory = category(s) finishing, sanding
article 1
category(s) finishing, sanding
article2
category(s) tips
article 3
category(s) tips, informational
article 3
category(s) tips, informational
endforeach

我没有写这个查询。我猜是那个人太忙了,没有时间回复。所以我需要一些帮助,但我不够聪明,无法提供提示。所以请具体一点。我想我知道问题出在哪里,但我没有足够的经验来解决它。

最佳答案

GROUP BY 应该去掉重复项。我还注意到,在您现有的 GROUP BY 中,您应该使用别名而不是完全限定名称。

尝试将文章 ID 添加到 GROUP BY

GROUP BY categoryname ASC, articletitle  ASC, articleid ASC

关于对多对多外连接的mysql查询产生重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28906946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com