加入两个表并从结果中选择

时间:2014-01-19 23:54:31

标签: mysql sql database relational-database

我正在尝试SQL,并且在组合来自多表的信息时难以确定查询。一直在使用w3school但他们似乎没有类似的参考下面的问题。正考虑将它们作为我的代码加入,但仍然没有回答这个问题。感谢任何建议。谢谢。

  

问题:

     

产品(itemID,描述,数量,供应商ID)

     

供应商(供应商ID,名称,地址)

     

产品可由多个供应商提供。写SQL到   列出每个供应商的每种产品的数量。

SELECT Products.quanity, Supplier.name
FROM Products INNER JOIN Supplier
ON Products.supplierID = Supplier.supplierID;

2 个答案:

答案 0 :(得分:0)

您似乎需要在此使用group by

select itemId, supplierId, sum(quantity) from Products group by itemId, supplierId;

答案 1 :(得分:0)

假设product表没有针对同一供应商和产品的两行,那么您的查询非常接近。我会把它写成:

SELECT p.description as ProductDescription, s.name as SupllierName, p.Quantity
FROM Products p INNER JOIN
     Supplier s
     ON p.supplierID = s.supplierID
ORDER BY p.description, p.Quantity desc;

请注意以下事项:

  • 表别名(ps)的使用使查询更具可读性,并用于每个列引用。
  • 最终结果明确按产品排序,数量最多。
  • 如果给定产品和供应商有多行,则需要汇总。