SQL --幾張表公有字段的查詢

已知:t_a中有字段userId,t_b表中有userId、userName
需求:我想找出t_a,t_b表中公共的用戶的名稱
說明:我用useFlag字段判斷用戶是否有效
//查詢方式一
sql

select ta.userId,tb.userName 
from t_a ta
left join t_b tb
on ta.userId=tb.userId
and tb.useFlag = 1

//查詢方式二
code

select tb.userId,tb.userName 
from t_a ta
left join t_b tb
on ta.userId=tb.userId
and tb.useFlag = 1

解析:如上兩種查詢方式惟一的區別點就在於ta.userId與tb.userId
如今假設:
1.t_a表中有userId=1000000001
2.t_b表中有userId=1000000001,且useFlag = 0
若是採起方式一查詢,得出的結果是
class

userId       userName
1000000001   null

採起方式二查詢獲得的結果是
select

userId       userName
null         null

個人業務需求是
若是取回來了userId,那就說明userName是有值的(這裏假設userName非空)
若是採起方式一查詢,很明顯不對。
備註:之前寫SQL的時候,當查詢的兩張表中有公共字段須要被查出來時,我是隨便用哪張表.公有字段查詢出來的。現在看來,取公有返回字段的時候,最好是考慮下應該取那種表的字段更加準確些。
查詢

相關文章
相關標籤/搜索