作者hasio227 (hasio)
看板Database
標題Re: [SQL ]新手想請教一下
時間Sun Jun 8 22:28:39 2008
※ 引述《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