連接返回值,但在兩個表中都找到值。我的語法不好?左外部連接返回兩個表中的結果
select distinct source.[Manufacturer]
from Products2.dbo.sourceexport source
left join Products2.dbo.uniqueprods u
on source.[Manufacturer]=u.mfg
where u.mfg is null;
select [Manufacturer] from Products2.dbo.sourceexport where [Manufacturer]='XYZ';
select mfg from Products2.dbo.uniqueprods where mfg='XYZ'
選擇/加入語句返回約20行,第一行是「XYZ」,但它也可能是格式「XYZ」的一些行。當我將結果(有/無填充,有或沒有ltrim(rtrim(u.mfg))
在我的所有領域)複製到第二和第三個語句時,我分別獲得了15和260個結果。
左外部連接的任何結果應該爲右表返回0行,並且260比我期望的0多。
編輯:我在前面的問題中被告知我太冗長了。顯然在這裏,我不夠冗長。謝謝。 我想要一個左外連接。這意味着,我需要source
中的製造商不在u
中。我們可以返回所有行的所有字段,如果這有助於您更好地回答問題,那麼我可以創建第二步,從這些結果中選擇不同的製造商。
我有幾百萬條記錄,包含我的客戶認爲敏感的信息。向這些小部件製造商的行業暗示是不合適的。除了我的客戶,其他任何人都不感興趣。 (a,c,e,g,g,i,k,l)的表格u
表格u
。我想返回值(b,d,f,h,j)。我得到的返回值中有一個但不是c。我不知道它是否包含(b,d,f,h,j)的全部內容,因爲我不相信我的陳述有效。
以不同的方式說明問題:我如何編寫左外連接,而語句的結果都不在右表中?
編輯2:從下面的語句看來,語法不錯。使我的第一個編輯問題重述無效。回到最初的問題陳述,爲什麼我的左外連接返回兩個表中的值?
除了不可見字符(這應該由ltrim(rtim())解決,對嗎?)和字段類型,還有哪些其他因素可能導致連接出現故障?
添加樣品表數據,當前結果和預期結果! – jarlh
雖然你的問題不是很清楚,那麼你想要sourceexport中存在的行,但不是唯一的產品?此外,在連接查詢中有獨特的子句,但不在第二個和第三個where語句中。這可能會給出不同的行數。如@jarlh所述,請添加更多信息。 –
@AkankshaSingh謝謝。這是我的第一個SQL問題。例如,VBA要求信息少得多,而且我正在爲那些聽衆習慣寫作。是的,有一個明確的條款。行數並不相關,但是有一件事:我包含行數的唯一原因是,因爲第一條語句的任何結果,我認爲應該爲第三條語句返回0行。除0之外的任何內容都是不可取的。我可能應該只是說行數不是零。 – CWilson