gpt4 book ai didi

mysql - 将 ALL 与 MySQL 一起使用

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

我有三个表:Suppliers (id, name...)、TypeOfServices(id, service...) 和 SupplierService(supplierId, ServiceId)。

作为搜索输入,我有一个包含服务 ID 类型的列表。我可以有 (1) 或 (1,3) 或 (1,2,3)。我需要在 MySQL 中进行查询,它将向我返回所有提供搜索中服务的供应商(它也可以提供其他服务,但它必须提供搜索中的服务)。

我不能使用 IN,因为 IN(2,3) 将返回 serviceId 为 2 或 3 的供应商,而我需要 2 和 3。

我试过像这样:

SELECT * FROM suppliers as s
INNER JOIN supplierservices as ss ON ss.SupplierId = s.Id
WHERE ss.ServiceId = ALL (SELECT id FROM typeofservices WHERE id IN (2, 3))

但它没有给我任何结果,而且我有一家提供这两种服务的供应商(ID 为 2 和 3)。我认为 SQLServer 接受像这样的查询 ALL(2,3),但在 MySQL 中它不是这样工作的,你必须在 ALL 中有一个查询。

最佳答案

尝试

SELECT * FROM suppliers as s
INNER JOIN supplierservices as ss ON ss.SupplierId = s.Id
WHERE ss.ServiceId IN(2,3)
GROUP BY s.id
HAVING COUNT (DISTINCT ServiceId)=2

关于mysql - 将 ALL 与 MySQL 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20827821/

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