看板 Database 關於我們 聯絡資訊
※ 引述《mmfily (mm)》之銘言: : 最近在自學sql語法 在網路上有看到利用Left Outer Join串連兩個資料表。 : 對他的解答有些疑問,所以想請教一下版上的高手們 : 資料表──「Accounts」 : ID(自動編號) Username(字串)  LimitHours(數字)  Password(字串) :    1     陳小明        5        12345 :    2     張小黑        8        123abc :    3     王大文        6        WTaiMan :    4     李小珍        9        LeeFamily :    5     陳大文        4        CTaiMan :           資料表──「Fares」 : ID2(自動編號) Username(字串)  MonthlyFee(數字) :    5     陳小明        25 :    6     張小黑        40 :    7     王大文        30 :    8     李小珍        45 : 實例語法:Select * from Accounts A Left Outer Join :      Fares B On A.Username=B.UserName : 資料傳回:由於比較抽象,這裏使用圖解說明資料傳回。 :      ID,Username,LimitHours,Password,ID2,MonthlyFee :      Null,陳小明,Null,Null,5,25 :      2,張小黑,8,123abc,6,40 :      3,王大文,6,WTaiMan,7,30 :      4,李小珍,9,LeeFamily,8,45 :      5,陳大文,4,CTaiMan,Null,Null :      由於陳大文這筆資料只是出現在其中一個資料表,因此,另一個資料表得不到 : 相關資料,傳回值變成Null。 : 想請問一下 陳小明 為什麼出來的結果會是 ID是傳回NULL,LIMITHOURS : 也是NULL,password也是NULL呢?? : 他的資料不是二個資料表都有出現過嗎?? 為什麼還會跑出NULL@@? : 可以幫我解答一下嗎?? 我剛剛在MS-SQL試了一下,並沒有出現你所說的問題^^" select ID,t1.Username,LimitHours,Password,ID2,MonthlyFee from table1 t1 left join table2 t2 on t1.Username=t2.Username 結果 ID Username LimitHours Password ID2 MonthlyFee ----------- -------- ----------- ------------------ ----------- ----------- 1 陳小明 5 12345 5 25 2 張小黑 8 123abc 6 40 3 王大文 6 WTaiMan 7 30 4 李小珍 9 LeeFamily 8 45 5 陳大文 4 CTaiMan NULL NULL 你可以幫你創建資料表的指令碼PO上來我幫你看看吧^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.127.194.122
slalala:不過 感覺資料庫欄位 有重複 正規劃沒做 06/09 14:12
mmfily:感謝你^^ 這是我在網站上看到的範例 我看他的結果出來有NUL 06/09 20:36