SQL --几张表公有字段的查询

 2023-09-05 阅读 36 评论 0

摘要:2019独角兽企业重金招聘Python工程师标准>>> 已知:t_a中有字段userId,t_b表中有userId、userName需求:我想找出t_a,t_b表中公共的用户的名称说明:我用useFlag字段判断用户是否有效//查询方式一 selectta.userId,tb.userName fromt_ata leftjoi

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

已知:t_a中有字段userId,t_b表中有userId、userName
需求:我想找出t_a,t_b表中公共的用户的名称
说明:我用useFlag字段判断用户是否有效
//查询方式一

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

//查询方式二

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
如果采取方式一查询,得出的结果是

userId       userName
1000000001   null

采取方式二查询得到的结果是

userId       userName
null         null

我的业务需求是
如果取回来了userId,那就说明userName是有值的(这里假设userName非空)
如果采取方式一查询,很明显不对。
备注:以前写SQL的时候,当查询的两张表中有公共字段需要被查出来时,我是随便用哪张表.公有字段查询出来的。如今看来,取公有返回字段的时候,最好是考虑下应该取那种表的字段更加准确些。

转载于:https://my.oschina.net/u/2312022/blog/540373

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/1305.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息