Mysql 将函数与';在';寻找两个值
我有当前的sql语句:Mysql 将函数与';在';寻找两个值,mysql,Mysql,我有当前的sql语句: SELECT count(distinct s.SupplierID) from Products p join Categories c on p.CategoryID = c.CategoryID join Suppliers s on s.SupplierID = p.SupplierID and c.CategoryName IN ('Beverages', 'Seafood'); 我很难让它只显示饮料和海鲜,而不是一个或另一个 您可以使用所有操作员来完成您的
SELECT count(distinct s.SupplierID)
from Products p join Categories c on p.CategoryID = c.CategoryID
join Suppliers s on s.SupplierID = p.SupplierID and c.CategoryName
IN ('Beverages', 'Seafood');
我很难让它只显示饮料和海鲜,而不是一个或另一个 您可以使用所有操作员来完成您的要求
SELECT count(distinct s.SupplierID)
from Products p join Categories c on p.CategoryID = c.CategoryID
join Suppliers s on s.SupplierID = p.SupplierID and c.CategoryName
=All (select 'Beverages' as column
Union all select 'Seafood');
您可以使用和分别给出两个条件
SELECT count(distinct s.SupplierID)
from Products p join Categories c on p.CategoryID = c.CategoryID
join Suppliers s on s.SupplierID = p.SupplierID
Where c.CategoryName ='Beverages' and c.CategoryName= 'Seafood'
您是否尝试将该条件放在
WHERE
子句中,而不是作为连接条件的一部分?例如:
SELECT count(distinct s.SupplierID)
from Products p
join Categories c on p.CategoryID = c.CategoryID
join Suppliers s on s.SupplierID = p.SupplierID
WHERE c.CategoryName IN ('Beverages', 'Seafood');
如果我假设你想要一份与这两个类别相关的供应商名单
SELECT S.SupplierID
FROM Products p
INNER JOIN join Categories c
on p.CategoryID = c.CategoryID
INNER JOIN Suppliers s
on s.SupplierID = p.SupplierID
WHERE c.CategoryName IN ('Beverages', 'Seafood')
GROUP BY SupplierID
HAVING count(Distinct c.categoryID) = 2
问题是,每个类别位于不同的行上。所以我们需要找到那些两排都有的,而不仅仅是两排的饮料或海鲜。因此,我们区分类别Id并将其计算在内,并确保两者都存在,因为where条款将结果限制在饮料或海鲜类别的供应商
另一种方法是每个类别都有一个联接,但由于更多类别名称而变得麻烦。如果希望所有供应商都提供这两个类别,可以使用以下方法:
SELECT count(distinct s.SupplierID)
from Products p join Categories c on p.CategoryID = c.CategoryID
join Suppliers s on s.SupplierID = p.SupplierID
and c.CategoryName like 'Beverages'
where exists (select * from Products where SupplierID = s.SupplierID and
CategoryID = (select CategoryID from Category where name like 'Seafood') )
请给我一些样本数据,为你们提供完美的解决方案。所以你们只想展示同时提供海鲜和饮料的供应商?因为一些奇怪的原因,这是行不通的。还有别的办法吗?现在我已经改变了,现在试试看,那也不行。这些都是我以前尝试过的方法,发生了什么,你得到了什么错误,或者你得到的结果没有满足你的要求,只是显示数据库中没有。但是,我知道有一个twoYah的输出和以前一样