我想知道,有沒有一種方法,使一種一對一的左外連接:ONE TO ONE LEFT OUTER JOIN
我需要加入該場比賽說表A和B表,每個記錄上表A必須在表B上搜索它的對,但是隻存在一條匹配該條件的記錄,因此當它在B上找到它的對時,它必須停止並繼續在表A的下一行。
什麼我有一個簡單的左外連接。
select * from A LEFT OUTER JOIN B ON A.ID = B.ID ORDER BY (NAME) ASC
在此先感謝!
我想知道,有沒有一種方法,使一種一對一的左外連接:ONE TO ONE LEFT OUTER JOIN
我需要加入該場比賽說表A和B表,每個記錄上表A必須在表B上搜索它的對,但是隻存在一條匹配該條件的記錄,因此當它在B上找到它的對時,它必須停止並繼續在表A的下一行。
什麼我有一個簡單的左外連接。
select * from A LEFT OUTER JOIN B ON A.ID = B.ID ORDER BY (NAME) ASC
在此先感謝!
您在問題中顯示的語法是正確的。加入一對一關係的查詢與一對多沒有區別。
SQL不能這樣工作。首先,它並不是逐行看待事物。第二位是什麼定義你想匹配的記錄?
假設你真的不關心哪一行selcted,這樣的事情可能工作:
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。
嗨HLGEM,我忘記說,在這兩種情況下,JOIN條件下的標識符是唯一的。謝謝 – Sheldon 2009-11-09 20:16:17
-1錯過了問題的要點。你使問題過度複雜化。 – 2009-11-09 20:22:18
這是在數據庫中定義的一對一關係,還是B可以包含N個基於外鍵的與A關聯的記錄? – Josh 2009-11-09 20:15:19
你的左連接有什麼問題? – 2009-11-09 20:15:35
是一對一的定義關係Josh – Sheldon 2009-11-09 20:19:55