2014-04-03 224 views
-5

我正在研究SQL語法來編寫Join查詢。 我無法得到預期的輸出,我請求專家來幫助我。SQL Join查詢返回匹配和不匹配的記錄

Table: Table1 

ScriptNumber Date Filled RefillsLeft 
100    01/02/2014  1 
200    01/03/2014  0 
300    01/22/2014  3 


Table : Table 2 

ScriptNumber Date Filled RefillsLeft 
100    02/02/2014  0 

Expected output 

ScriptNumber Date Filled RefillsLeft 
100    02/02/2014  0 
300    null   null 

SQL語句

SELECT Table_2.ScriptNumber 
     ,Table_2.DateFilled 
     ,Table_2.RefillsLeft 
    FROM Table_1 
    LEFT JOIN Table_2 
     ON Table_1.ScriptNumber = Table_2.ScriptNumber 
+3

和你的問題是什麼? – KrazzyNefarious

+0

我無法獲得預期的輸出。這是一種充分加入。那就是我的問題 – goofyui

+2

到目前爲止你嘗試過什麼?你能用文字解釋你的預期結果嗎?我不清楚你在努力達到什麼目的。 –

回答

1

您的問題來自SELECTtable_2聲明中的列,該列沒有存在於table_1中的行的值。您需要更改SELECT Table_2.ScriptNumberSELECT Table_1.ScriptNumber

作爲日後參考確保您始終從LEFT表,只有你從RIGHT表需要列選擇的所有相關列。否則,您最終會得到更少的行,而不是具有存在於LEFT表中的數據。

1

左連接可以讓您在TABLE_1想要的記錄和任何相關的細節,可能在TABLE_2

select Table_1.ScriptNumber 
    , Table_2.DateFilled 
    , Table_2.RefillsLeft 
from Table_1 
    left join Table_2 on Table_1.ScriptNumber = Table_2.ScriptNumber 
where Table_1.RefillsLeft > 0 

這種存在這裏有用一個描述也有助於你的問題。

+0

它返回預期的記錄。謝謝。只要incase,如果我想查看只有空值的記錄。我應該如何調整我的查詢。不使用where條件等於null – goofyui