gpt4 book ai didi

SQL - 在子查询中选择特定条件

转载 作者:行者123 更新时间:2023-11-29 14:08:38 27 4
gpt4 key购买 nike

我正在尝试使用查询来选择满足特定条件的公司的所有数据,但我在这样做时遇到了问题。以下是我到目前为止所做的:

SELECT *
FROM company a
WHERE a.id IN (SELECT b.company_id
FROM provider b
WHERE b.service_id IN (2, 4));

我希望子查询(使用下表)的作用是选择拥有 service_id 2 的 company_id 4

所以在这个例子中,它只会返回 company_id 5:

+----------------+
| provider TABLE |
+----------------+

+----------------+----------------+----------------+
| id | company_id | service_id |
+--------------------------------------------------+
| 1 | 3 | 2 |
| 2 | 5 | 2 |
| 3 | 5 | 4 |
| 4 | 9 | 6 |
| 5 | 9 | 7 |
| ... | ... | ... |

你可能已经猜到了,在子查询中使用 IN 并不能满足我的需求,它会选择 company_id 5 还有 company_id 3。我理解为什么存在 IN 来检查一个值是否与值列表中的任何值匹配,所以它并不是我真正需要的。

所以我的问题是:

How can I replace the IN in my sub-query to select company_id having the service_id 2 and 4?

最佳答案

子查询应该是:

 SELECT b.company_id 
FROM provider b
WHERE b.service_id IN (2, 4)
GROUP BY b.company_id
HAVING COUNT(b.service) = 2

关于SQL - 在子查询中选择特定条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53853982/

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