gpt4 book ai didi

mysql - SQL左连接和group_concat返回重复数据

转载 作者:行者123 更新时间:2023-11-29 01:13:22 25 4
gpt4 key购买 nike

我正在尝试从具有 2 个左连接的 3 个不同表中返回数据。所有表都返回多行。这是我的声明:

SELECT s.*, GROUP_CONCAT(sp.photo) AS photos, GROUP_CONCAT(st.name) AS tags
FROM sites s
LEFT JOIN sites_photos sp
ON sp.sites_id = s.id
LEFT JOIN sites_tags st
ON st.sites_id = s.id
WHERE s.id = 30

此语句返回的数据如下所示:

Array
(
[id] => 30
[url] => www.test.be
[name] => test
[date] => 2014-08-16
[photos] => 201408141132191_gummies.jpg, 201408141132191_gummies.jpg, 201408141132191_gummies.jpg, 201408141132191_gummies.jpg, 201408141132191_gummies.jpg, 201408141132191_gummies.jpg, 201408141132191_gummies.jpg, 201408141132194_gummies.jpg, 201408141132194_gummies.jpg, 201408141132194_gummies.jpg, 201408141132194_gummies.jpg, 201408141132194_gummies.jpg, 201408141132194_gummies.jpg, 201408141132194_gummies.jpg
[tags] => test, hello, ale, print, social, more, hcp, test, hello, ale, print, social, more, hcp
)

您可以看到“标签”返回了两次,“照片”返回了 5 次以上。当我删除一个 LEFT JOIN 时,查询返回正确的数据。如何防止语句返回重复数据?

提前致谢。

最佳答案

使用

GROUP_CONCAT(DISTINCT sp.photo) AS photos, GROUP_CONCAT(DISTINCT st.name)

关于mysql - SQL左连接和group_concat返回重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25308821/

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