Sql 将两个select语句连接到一个表中
我想连接两个表以显示一个结果集。任何帮助都将不胜感激 待定订单: ┌─────────┬────────────────┬────────────────┐ │ OrderID │ PublicationID1 │ PublicationID2 │ ├─────────┼────────────────┼────────────────┤ │ 1 │ 1 │ 2 │ │ 2 │ 3 │ 1 │ │ 3 │ 1 │ 3 │ └─────────┴────────────────┴────────────────┘Sql 将两个select语句连接到一个表中,sql,left-join,inner-join,Sql,Left Join,Inner Join,我想连接两个表以显示一个结果集。任何帮助都将不胜感激 待定订单: ┌─────────┬────────────────┬────────────────┐ │ OrderID │ PublicationID1 │ PublicationID2 │ ├─────────┼────────────────┼────────────────┤ │ 1 │ 1 │ 2 │ │ 2 │ 3 │
您不需要子查询。只需将
tbl_出版物左连接两次,一次在PublicationID1
上,另一次在PublicationID2
上:
SELECT o.OrderID,
p1.Publication_Name AS PublicationName1,
p2.Publication_Name AS PublicationName2
FROM tbl_Orders o
LEFT JOIN tbl_Publications p1 ON o.PublicationID1 = p1.PubID
Left JOIN tbl_Publications p2 ON o.PublicationID2 = p2.PubID
您可以像这样使用连接
SELECT
orderId,
b.Publication_Name as PublicationName1
c.Publication_Name as PublicationName2
from tbl_Orders a
LEFT JOIN tbl_Publications b ON a.PublicationID1 = b.PubID
Left JOIN tbl_Publications c ON a.PublicationID2 = c.PubID
在大多数情况下,您不会使用子查询
,因为它们确实会给系统带来沉重负担-因此,如果您可以避免子查询,请在不使用子查询的情况下工作
我会把它移到它下面的一张桌子上,在那里你可以有多个订单项目
订单库存将是指向您自己库存的链接,您还将包括有关价格等的信息,以便进一步的价格变化不会影响您:)如果您想要子查询,这也会起作用
SELECT ord.Orderid,
(select Publication_Name
from tbl_Publications
where pubid=ord.PublicationID1) as publication_name1,
(select Publication_Name
from tbl_Publications
where pubid=ord.PublicationID2) as publication_name2
FROM tbl_Orders ord
这就解决了…我需要两个左连接!谢谢。
SELECT o.OrderID,
p1.Publication_Name AS PublicationName1,
p2.Publication_Name AS PublicationName2
FROM tbl_Orders o
LEFT JOIN tbl_Publications p1 ON o.PublicationID1 = p1.PubID
Left JOIN tbl_Publications p2 ON o.PublicationID2 = p2.PubID
SELECT
orderId,
b.Publication_Name as PublicationName1
c.Publication_Name as PublicationName2
from tbl_Orders a
LEFT JOIN tbl_Publications b ON a.PublicationID1 = b.PubID
Left JOIN tbl_Publications c ON a.PublicationID2 = c.PubID
SELECT ord.Orderid,
(select Publication_Name
from tbl_Publications
where pubid=ord.PublicationID1) as publication_name1,
(select Publication_Name
from tbl_Publications
where pubid=ord.PublicationID2) as publication_name2
FROM tbl_Orders ord