中易网

sqlserver联表查询

答案:1  悬赏:50  
解决时间 2021-12-14 04:15
有两个表:表1(序号,姓名,课程,回答时间),表2(序号,姓名,课程,签到时间)
表1数据 1 张三 2 XXX
2 张三 3 XXX
3 李四 2 XXX
表2 1 张三 2 XXX
2 王五 2 XXX
统计结果 序号 姓名 课程 回答时间 签到时间
1 张三 2 XXX XXX
2 张三 3 XXX
3 李四 2 XXX
4 王五 2 XXX
最佳答案
可以用谓词或联结实现:

连接实现:
select * from b join a on b.id=a.id where a.b=21
联结实现的条件是两表id来自同一值域,表示意义相同。在连接时其实两可以作成一个表的:
也就是
id,a.b,a.c,b.b.b.c
但由于空值的问题,导致了部分依赖所以才会拆分成两个表的。

使用谓词实现:
select * from b where id in (select id from a where a.b=21)
这个可以实现两表id来自同一值域,但表示意义不同的情况。也就是说两表中的id有无关性。

相比较而言,连接的方式更快一些,但这种情况是两表来自同一值域,且意义相同,如果不是这种情况,可能得不到你正确的值的。而使用谓词不管意义是否相同,都可以得到正确的值。

玩数据库必须知道这两个表是否具有相关性,也就是设计时的意义,否则优化词...可以用谓词或联结实现:

连接实现:
select * from b join a on b.id=a.id where a.b=21
联结实现的条件是两表id来自同一值域,表示意义相同。在连接时其实两可以作成一个表的:
也就是
id,a.b,a.c,b.b.b.c
但由于空值的问题,导致了部分依赖所以才会拆分成两个表的。

使用谓词实现:
select * from b where id in (select id from a where a.b=21)
这个可以实现两表id来自同一值域,但表示意义不同的情况。也就是说两表中的id有无关性。

相比较而言,连接的方式更快一些,但这种情况是两表来自同一值域,且意义相同,如果不是这种情况,可能得不到你正确的值的。而使用谓词不管意义是否相同,都可以得到正确的值。

玩数据库必须知道这两个表是否具有相关性,也就是设计时的意义,否则优化词句什么的都没有办法去做的!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
飽識的意思是什么?飽識的释义是什么啊?
豆腐可以做成砧板吗?目前有没有这样的生产厂
地阁的意思是什么啊?请解释下!
北通瞬风188为什么就是脚踏板不好使??
日照哪里有卖投影仪
自考毕业论文交双面打印的材料行吗
2011青岛市教师招聘考试(部分事业单位招聘考
哈尔滨工业大学多少分能进
弄兒的意思是什么?弄兒的释义是什么啊?
犀牛档如何与PROE更好的衔接
科车的意思是什么啊?请解释下!
盘山县水利局地址有知道的么?有点事想过去!
什么电视剧男主最冷
长丽的意思是什么?长丽的释义是什么啊?
大家觉得一线姻缘咋样啊?
推荐资讯
达鉴的意思是什么啊?请解释下!
北高柱村委会地址在什么地方,想过去办事
百子瓮的意思是什么?百子瓮的释义是什么啊?
现在在校大学生做个什么代理比较好?
1977年农历七月二十八对应的阳历是什么时间
洪泽分中心地址在什么地方,想过去办事
淳欣食品怎么样
内蒙古师范大学校车假期还有么
抽课的意思是什么啊?请解释下!
段家粉汤羊血怎么去啊,有知道地址的么
新骐达后备箱灯老实亮怎么回事
为什么电动三轮车的后视镜看起很远
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?