首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql DISTINCT仍然返回重复值。

Mysql DISTINCT仍然返回重复值。
EN

Stack Overflow用户
提问于 2022-02-05 15:27:09
回答 2查看 170关注 0票数 1

如何避免在friends上复制我仍然可以得到两个bob而不是一个bob

我的桌子设置:

代码语言:javascript
复制
CREATE TABLE users(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255)
);

INSERT INTO users (id, name)
VALUES (1, "Gregor"),
    (2, "Liza"),
    (3, "Matt"),
    (4, "Tim"),
    (5, "Lance"),
    (6, "Bob");
    
CREATE TABLE committee(
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT,
    friend_id INT,
    member_id INT,
    FOREIGN KEY (`user_id`) REFERENCES `users` (`id`),
    FOREIGN KEY (`friend_id`) REFERENCES `users` (`id`),
    FOREIGN KEY (`member_id`) REFERENCES `users` (`id`)
);
INSERT INTO committee (user_id, friend_id, member_id)
VALUES (3, 5, 1),
(4, 5, 1),
(3, 6, 2),
(3, 6, 2),
(4, 6, 2);

我使用的查询:

代码语言:javascript
复制
SELECT DISTINCT u.name,
       GROUP_CONCAT(f.name) AS friends
FROM committee c
INNER JOIN users u ON (u.id = c.user_id)
INNER JOIN committee c2 ON c2.user_id = c.user_id
INNER JOIN users AS f ON (f.id = c2.friend_id)
WHERE (c.member_id = 1)
GROUP BY u.id;

目前的结果:

代码语言:javascript
复制
name    friends
Matt    Lance,Bob,Bob
Tim Lance,Bob

我所期望的:

代码语言:javascript
复制
name    friends
Matt    Lance,Bob
Tim Lance,Bob
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-05 15:31:03

您只需要在DISTINCT中使用GROUP_CONCAT()

代码语言:javascript
复制
SELECT u.name,
       GROUP_CONCAT(DISTINCT f.name) AS friends
................................................

请注意,SELECT DISTINCT ...在查询中没有意义,因为您使用的是GROUP BY,它为每个用户返回不同的行。

演示

票数 1
EN

Stack Overflow用户

发布于 2022-02-05 15:31:11

您有不同的u.name,而不是f.name

尝尝这个

代码语言:javascript
复制
SELECT u.name,
       GROUP_CONCAT(distinct f.name) AS friends
FROM committee c
INNER JOIN users u ON (u.id = c.user_id)
INNER JOIN committee c2 ON c2.user_id = c.user_id
INNER JOIN users AS f ON (f.id = c2.friend_id)
WHERE (c.member_id = 1)
GROUP BY u.name;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70999402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档