再加入3张桌子

时间:2019-05-08 08:58:34

标签: sql sql-server

我想加入3个以上的桌子。

让我们说说表Product,Order,OrderDetail,它们是诸如

的层次结构

产品订单(一对多) Order-OrderDetail(一对多)

如果我有orderdetailId,如何获取产品信息 如果我有orderdetailId,如何获得所有产品

简而言之,我想知道联接如何处理3个以上的表

一个例子将是理解的理想选择

https://www.google.com/search?q=sql+join&rlz=1C1GCEU_en-GBAU828AU828&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjzp_baxYviAhUUfX0KHd6XDUoQ_AUIDigB&biw=1920&bih=937#imgrc=Br52yloHlDO_QM

1 个答案:

答案 0 :(得分:0)

假设您有3张桌子

  • 产品-包含“产品名称,说明等”列
  • 订单-包含“ productID”之类的列
  • OrderDetail-包含“ Orderdate,customername等”列

如果要获取所有以客户名称“ ABC”订购的产品,则查询将类似于

SELECT PROD.NAME FROM PRODUCT PROD INNER JOIN ORDER ORD ON ORD.PRODUCTID=PROD.ID
INNER JOIN ORDERDETAIL ORDTL ON ORDTL.ORDERID=ORD.ID 
WHERE ORDTL.CUSTOMERNAME = 'ABC'

上面的查询是使用'INNER JOIN'的三个表的示例