gpt4 book ai didi

mysql - 从两列中查找重复项,但显示所有行 MySQL

转载 作者:行者123 更新时间:2023-11-29 05:16:45 25 4
gpt4 key购买 nike

我有一张这样的 table

| user_id | company_id | employee_id |
|---------|------------|-------------|
| 1 | 2 | 123 |
| 2 | 2 | 123 |
| 3 | 5 | 432 |
| 4 | 5 | 432 |
| 5 | 7 | 432 |

我有一个看起来像这样的查询

SELECT COUNT(*) AS Repeated, employee_id, GROUP_CONCAT(user_id) as user_ids, GROUP_CONCAT(username)
FROM user_company
INNER JOIN user ON user.id = user_company.user_id
WHERE employee_id IS NOT NULL
AND user_company.deleted_at IS NULL
GROUP BY employee_id, company_id
HAVING Repeated >1;

我得到的结果是这样的

| Repeated | employee_id | user_ids   |
|---------|--------------|------------|
| 2 | 123 | 2,3 |
| 2 | 432 | 7,8 |

我需要这样的结果

| user_id |
|---------|
| 2 |
| 3 |
| 7 |
| 8 |

我意识到我的查询越来越多,但这只是为了确保我得到正确的数据。现在我需要在新行中获取每个 user_id 的单列结果,以便根据另一个查询中的 user_id 进行更新。我已经通过仅选择 user_id 进行了尝试,但我只得到两行,我需要所有四行重复项。

关于如何修改我的查询有什么想法吗?

最佳答案

这是获取所有 user_id 的查询:

SELECT user_id 
FROM user_company uc
INNER JOIN
(
SELECT employee_id, company_id
FROM user_company
WHERE employee_id IS NOT NULL
AND deleted_at IS NULL
GROUP BY employee_id, company_id
HAVING COUNT(employee_id) >1
) AS `emps`
ON emps.employee_id = uc.`employee_id`
AND emps.company_id = uc.`company_id`;

关于mysql - 从两列中查找重复项,但显示所有行 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31690780/

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