Sql server 如何构建跨多个表的查询?
这是我的桌子: 客户Sql server 如何构建跨多个表的查询?,sql-server,Sql Server,这是我的桌子: 客户 Cust_ID (PK) Name 订单 Order_ID (PK) Cust_ID (FK) 订单行 Order_ID (pk) Part_ID (FK) 部分 Part_ID (PK) Part_Description 现在我想列出客户的详细信息、零件号以及每个客户订购的零件的说明 我该怎么做 谢谢。你可以试试类似的东西 SELECT c.*, p.* FROM CUSTOMER c INNER JOIN ORDERS o
Cust_ID (PK)
Name
订单
Order_ID (PK)
Cust_ID (FK)
订单行
Order_ID (pk)
Part_ID (FK)
部分
Part_ID (PK)
Part_Description
现在我想列出客户的详细信息、零件号以及每个客户订购的零件的说明
我该怎么做
谢谢。你可以试试类似的东西
SELECT c.*,
p.*
FROM CUSTOMER c INNER JOIN
ORDERS o ON c.Cust_ID = o.Cust_ID INNER JOIN
ORDER_LINE ol ON o.Order_ID = ol.Order_Number INNER JOIN
PART p ON ol.Part_Number = p.Part_Number
看看
SQL join子句组合一个数据库中两个或多个表中的记录
数据库
在SQL语句中使用JOIN关键字从两个或多个数据库查询数据
更多表,基于这些表中某些列之间的关系
桌子
还有一些图形示例
您可以尝试以下方法
SELECT c.*,
p.*
FROM CUSTOMER c INNER JOIN
ORDERS o ON c.Cust_ID = o.Cust_ID INNER JOIN
ORDER_LINE ol ON o.Order_ID = ol.Order_Number INNER JOIN
PART p ON ol.Part_Number = p.Part_Number
看看
SQL join子句组合一个数据库中两个或多个表中的记录
数据库
在SQL语句中使用JOIN关键字从两个或多个数据库查询数据
更多表,基于这些表中某些列之间的关系
桌子
还有一些图形示例
您需要的是一个简单明了的
加入如下:
SELECT
c.Cust_ID,
c.Name,
l.Part_Number,
l.Part_Description
FROM CUSTOMER c
INNER JOIN ORDERS o ON c.Cust_ID = o.Cust_ID
INNER JOIN ORDER_LINE ol ON o.OrdeR_ID = ol.Order_Number
INNER JOIN PART l ON ol.Part_Number = l.Part_Number
您需要的是一个简单明了的JOIN
,如下所示:
SELECT
c.Cust_ID,
c.Name,
l.Part_Number,
l.Part_Description
FROM CUSTOMER c
INNER JOIN ORDERS o ON c.Cust_ID = o.Cust_ID
INNER JOIN ORDER_LINE ol ON o.OrdeR_ID = ol.Order_Number
INNER JOIN PART l ON ol.Part_Number = l.Part_Number
您需要SQL“连接”,例如:
SELECT c.Name, ol.Part_Number, p.Part_Description
FROM Customer AS c
JOIN Orders AS o ON c.Cust_ID = o.Cust_ID
JOIN Order_Line AS ol ON o.Order_ID = ol.Order_Number
JOIN Part AS p ON ol.Part_Number = p.Part_Number
请注意,如果没有WHERE子句,此查询将为所有客户返回所有订单中的所有零件,这将真正影响网络,并且在任何情况下都会表现不佳,除了一个很小的数据库:
其中(c.Cust_ID=MyCustomerID)
连接语法
连接语法您想要SQL“连接”,例如:
SELECT c.Name, ol.Part_Number, p.Part_Description
FROM Customer AS c
JOIN Orders AS o ON c.Cust_ID = o.Cust_ID
JOIN Order_Line AS ol ON o.Order_ID = ol.Order_Number
JOIN Part AS p ON ol.Part_Number = p.Part_Number
请注意,如果没有WHERE子句,此查询将为所有客户返回所有订单中的所有零件,这将真正影响网络,并且在任何情况下都会表现不佳,除了一个很小的数据库:
其中(c.Cust_ID=MyCustomerID)
连接语法
join语法您应该使用FK使用“join”,但从我看到的情况来看,“ORDERS”和“ORDER_LINE”之间没有外键。您确定表定义中没有遗漏某些内容,例如:订单行应该将订单ID作为FK?
希望这对您有所帮助您应该使用FK使用“JOIN”,但从我看到的情况来看,“ORDERS”和“ORDER_LINE”之间没有外键。您确定表定义中没有遗漏某些内容,例如:订单行应该将订单ID作为FK?
希望这有帮助我想会有帮助。我想会有帮助。