gpt4 book ai didi

mysql - 一张表内的sql多条件

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

得到这样的表

+---------+------------+----------+
| user_id | project_id | group_id |
+---------+------------+----------+
| 1 | 1 | 1 |
| 1 | 10 | 1 |
| 2 | 2 | 1 |
| 2 | 3 | 1 |
| 3 | 3 | 2 |
+---------+------------+----------+

仅查找来自 group_id=1 但不存在于 project_id=2 中的那些 user_id。在这种情况下,所需的输出将是

+---------+
| user_id |
+---------+
| 1 |
+---------+

我的问题

SELECT user_id
FROM STATUS
WHERE group_id = 1 and user_id NOT IN (
SELECT user_id
FROM STATUS
WHERE project_id = 2
GROUP BY user_id)
GROUP BY user_id

是子查询有大约 1 000 000 行,这使得整个查询非常慢(实际上 > 5 秒)。这将是任何聪明的加入,还是选择 2 次?谢谢你的提示。

最佳答案

MINUS 在 mysql 中使用 joins 的另一种选择,使用如下所示的连接:

select s1.user_id from (SELECT user_id,project_id,group_id
FROM STATUS
WHERE group_id = 1) s1
join
(SELECT user_id,project_id,group_id
FROM STATUS
WHERE project_id = 2) s2 on s1.user_id <> s2.user_id

关于mysql - 一张表内的sql多条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28551987/

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