与sql查询混淆
我有以下表格:与sql查询混淆,sql,postgresql-9.2,Sql,Postgresql 9.2,我有以下表格: Customer(login varchar, town varchar) Orders (Ordno int , login varchar) >>login Fk from Customer combination (Id int, ordno int ,Product_Id int) >>ordno fk from orders 我需要展示在所有城市销售的产品 例如: Insert into Customer (log1 , NY) (log2,
Customer(login varchar, town varchar)
Orders (Ordno int , login varchar) >>login Fk from Customer
combination (Id int, ordno int ,Product_Id int) >>ordno fk from orders
我需要展示在所有城市销售的产品
例如:
Insert into Customer (log1 , NY) (log2, NY) (log3, London)
Insert into Orders (1,log1) (2,log1) (3,log3)
Insert into combination (1,1,1) (2,2,2) (3,3,1)
- 产品1在纽约销售
- 产品2在纽约销售
- 产品1在伦敦出售
如果可用的城市仅为纽约和伦敦,则查询结果中必须包含的唯一产品是产品1,但不确定您在这里到底想做什么
SELECT c.Town, cc.Product_Id FROM from Customer c
JOIN Orders o ON c.login = o.login
JOIN Combination cc ON o.Ordno = cc.ordNo
GROUP BY c.town
这将把城镇分组,并向您显示产品Id
您仍然需要产品表来显示产品表
此查询不包括产品表
SELECT a.ProductID
FROM Combination a
INNER JOIN Orders b
ON a.OrdNo = b.OrdNo
INNER JOIN Customer c
ON b.Login = c.LogIn
GROUP BY a.ProductID
HAVING COUNT(DISTINCT a.ID) = (SELECT COUNT(DISTINCT town) FROM Customer)
Products (Product_Id int, Name)
你需要加入的东西一直到客户
SELECT p.Name, c.town
FROM Products p
INNER JOIN Combination comb ON comb.Product_Id=p.Product_Id
INNER JOIN Orders o ON o.Ordno=comb.ordno
INNER JOIN Customer cust ON cust.login=o.login
GROUP BY p.Name, c.town
产品表在哪里?如果没有产品表,则无法选择产品详细信息。此外。。。你试过什么?城市信息在customer@SpaceApple当被问及产品而非城市时……这似乎是一个学校的项目,已经放在最后一天了。我想展示在所有城市销售的产品。不是城市
具有计数(不同的a.ID)
也可以更改为具有计数(不同的a.ordNo)
参见此处