首页 > 试题广场 >

Mysql中表student_table(id,name,b

[单选题]
Mysql中表student_table(id,name,birth,sex),插入如下记录:
('1004' , '张三' , '2000-08-06' , '男');
('1005' , NULL , '2001-12-01' , '女');
('1006' , '张三' , '2000-08-06' , '女');
('1007' , ‘王五’ , '2001-12-01' , '男');
('1008' , '李四' , NULL, '女');
('1009' , '李四' , NULL, '男');
('1010' , '李四' , '2001-12-01', '女');
执行
select count(t1.birth) as c1
from (
select * from student_table where sex = '男' ) t1 
right  join 
(select * from student_table where sex = '女') t2 
on t1.birth = t2.birth and t1.name = t2.name ; 
的结果行数是()?
  • 2
  • 1
  • 3
  • 4
null字段的  遇到count 不参与计数
发表于 2022-01-24 16:50:12 回复(0)
解题思路:子查询表结构、连接、连接条件、计算连接、最后看查询条件
1. 了解子查询表结构:
student_table 男生表为t1 , 3行,其中1行birth 为NULL.
student _table 女生表为t2,  4行,其中1行birth 为NULL,1行name为NULL.
2.连接为 right join 右连接  
3.连接条件为t1、t2的两个表的birth和name相同
4.计算连接返回是4行,其中只有t1只有一行与t2重合
5.查询条件:select count(t1.birth),对t1.birth计数,所以返回1 选B
如果select count(t2.birth),对t2.birth计数,返回2 (因NULL不计)
注意:本题的陷阱在count(t1.birth)
编辑于 2022-01-07 09:37:30 回复(3)
  • 连接后的新表只有一条数据相同。
  • null=null不算,所以李四不在。
    student_table_right_join
发表于 2022-02-09 00:28:47 回复(2)
这题出的相当sb, 最后count(t1.birth)不是不用动脑选输出行数1 吗, count就输出一个结果啊
发表于 2022-04-13 18:36:50 回复(0)
遇到这种题直接屏蔽了 count(*), 问的行数
发表于 2022-05-27 16:37:40 回复(0)
因为是右连接,所以t2表里的信息都要有,也就是女生表中的4条都要有;再来说匹配,1008和1009的birth都是null,null=null是不算的,因此实际只能匹配到一条信息,左边表是1条信息,右边表是4条信息,问的是count(t1.birth),因此答案是1
发表于 2023-01-19 18:25:29 回复(0)
count字段统计时,遇到null字段,直接忽略

发表于 2022-05-18 09:33:13 回复(0)
亲自执行后答案是1🌚🌚,选B
发表于 2021-12-24 16:56:08 回复(1)
输出的是4行记录,但由于count(t1.name)不包含NULL记录,所以结果是1行。
发表于 2023-02-24 21:41:43 回复(0)
 返回的是count(t1.birth),是一个数,只有一行
发表于 2022-03-13 21:44:23 回复(0)
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录,D才是正确答案吧
发表于 2021-12-18 21:58:40 回复(2)
如果没有count(t1.birth)返回几行呢?
发表于 2024-03-09 15:25:26 回复(0)
右边表连接,不是要把右边表数据全部保留吗?
发表于 2023-05-06 23:59:20 回复(0)
没看到生日也得一样,服了自己
发表于 2023-05-06 09:26:38 回复(0)
很不理解这句的逻辑,t1不是select * from student_table where sex = '男' ) 这个表嘛,为什么最后取得是两个表连接后的行,而不是t1的....是因为这个语句中间并不生成表嘛?
发表于 2023-03-15 13:59:56 回复(0)
出的什么gb题啊....
发表于 2023-02-12 19:54:25 回复(0)
count在值是null是不统计数,结果只有“张三”1行
发表于 2023-01-02 10:03:05 回复(0)
这题问的是行数,审题啊宝贝们
发表于 2022-08-30 22:23:35 回复(0)
  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
  • count  计数作用,但不会计入nulll值
发表于 2022-07-11 14:35:57 回复(0)
发表于 2022-02-25 16:48:16 回复(0)