我正在学习SQL,我想为特定的ID号选择名称和电话号码的特定列表。这些名称是使用FurnitureID购买Furniture的客户的名称。此列表还应按客户名称的字母顺序显示。我不确定Join的工作方式以及如何按照客户名称的字母顺序列出它。
因此,客户在商店下订单,然后公司从其供应商处订购了所需的家具。当订购的家具到达商店时,工作人员会打电话或发电子邮件给客户,告知他们准备收货。客户经常以同一顺序订购不止一种家具,例如沙发和两把椅子。
表存储在关系数据库中
到目前为止,我所做的是:
SELECT Furniture.FurnitureID, Customer.CustomerName, Customer.TelephoneNumber)
FROM Furniture, Customer
WHERE FurnitureID = 10765
谢谢!
答案 0 :(得分:0)
您可以将exists
条件与相关的子类别结合使用,以为订购相关家具的用户过滤Customer
表:
select c.CustomerName, c.TelephoneNumber
from customer c
where exists (
select 1
from CustomerOrder co
inner join CustomerOrderLine col
on col.OrderID = co.OrderID
and col.FurnitureID = ?
where co.CustomerID = c.CustomerID
)
order by c.CustomerName
问号(?
)代表您要搜索的家具的ID。
答案 1 :(得分:0)
尝试一下:
Select c.* From Customer c inner join CustomerOrder co on c.CustomerID co.CustomerID
inner join CustomerOrderLine col on col.OrderID = co.OrderID
inner join Furniture f on f.FurnitureID = col.FurnitureID
where f.FurnitureID = 10765
order by CustomerName