[英]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.