簡體   English   中英

一對一左外聯接

[英]ONE TO ONE LEFT OUTER JOIN

我想知道,有沒有辦法做出一種一對一的左外連接:

我需要一個匹配表A和表B的連接,對於表A上的每個記錄,它必須在表B上搜索它的對,但是只存在一個匹配該條件的記錄,所以當它在B上找到它的對時,它必須停止並繼續在表A的下一行。

我所擁有的是一個簡單的LEFT OUTER JOIN。

select *  from A LEFT OUTER JOIN B ON A.ID = B.ID ORDER BY (NAME) ASC

提前致謝!

您在問題中提供的語法是正確的。 加入一對一關系的查詢與一對多關系的查詢沒有區別。

SQL不能以這種方式工作。 首先,它不是逐行查看事物。 第二,什么定義了你想要匹配的記錄?

假設您並不真正關心選擇哪一行,這樣的事情可能會起作用:

SELECT * 
From tableA
left outer join 
(select b.* from tableb b1
join (Select min(Id) from tableb group by id) b2 on b1.id - b2.id) b
on a.id = b.id

如果有多個記錄在表b中有id,那么你仍然可以獲得你想要的記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM