作者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
1F:推 slalala:不过 感觉资料库栏位 有重复 正规划没做 06/09 14:12
2F:推 mmfily:感谢你^^ 这是我在网站上看到的范例 我看他的结果出来有NUL 06/09 20:36