簡體   English   中英

需要左外連接的幫助嗎?

[英]Need assistance with Left Outer join?

SELECT ID
 (
 Select ID from Table1
 where Table1.ID=@ID
 )T1
 Left Outer join
 (
 Select top 1 Table2.ID from Table2 join Table3 on table3.ID=Table2.ID 
 order by Table2.ID DESC
 )T2 on T2.ID=T1.ID

這只是我與我的實際存儲過程的一個例子,我面臨的問題是我無法從T2檢索它只返回為NULL但是當我更改它時我能夠檢索價值。 這個Join是否正確,是否有必要將左外連接內的部分放在哪里才能檢索值?

如果你正在使用TOP,你需要決定所有選擇(全部三個)你的數據應該如何排序,這樣你就可以控制你要回收的值,也可以更具體地說明你過濾的內容。

幾點意見。

  1. 您的T1 SELECT沒有ORDER BY子句,那么您如何知道返回哪個TOP 250?

  2. 如果T2返回NULL,那么T1和T2之間沒有匹配,可能是由於我的第一個點?

你到底想要完成什么?

你可以嘗試這樣的事情:

SELECT
   TOP 250 Table1.ID
FROM
   Table1
LEFT OUTER JOIN
   Table2 ON Table2.ID = Table1.ID
LEFT OUTER JOIN
   Table3 ON Table3.ID = Table2.ID
WHERE
   Table1.ID = @ID
ORDER BY
   Table1.ID DESC

暫無
暫無

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

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