首页 > 试题广场 >

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 t1.*,t2.*
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 ; 
的结果行数是()?
  • 3
  • 4
  • 2
  • 1
RIGHT JOIN 关键字会返回右表 (t2) 所有的行(本题***4行),即使在左表 (t1) 中没有匹配的行。

发表于 2022-01-02 21:51:32 回复(1)
1. (select * from student_table where sex = '男' ) t1
('1004' , '张三' , '2000-08-06' , '男')
('1007' , ‘王五’ , '2001-12-01' , '男')
('1009' , '李四' , NULL, '男')
2. (select * from student_table where sex = '女') t2 
('1005' , NULL , '2001-12-01' , '女')
('1006' , '张三' , '2000-08-06' , '女')
('1008' , '李四' , NULL, '女')
('1010' , '李四' , '2001-12-01', '女')
3. t1 right  join t2 on t1.birth = t2.birth and t1.name = t2.name
                                                        ('1005' , NULL , '2001-12-01' , '女')
('1004' , '张三' , '2000-08-06' , '男') ('1006' , '张三' , '2000-08-06' , '女')
('1009' , '李四' , NULL, '男')  ('1008' , '李四' , NULL, '女')
                                                        ('1010' , '李四' , '2001-12-01', '女')
共计四行
发表于 2022-01-06 01:14:03 回复(2)
null代表不确定,两个不确定显然不是相等的。要判断null要用is null。
发表于 2022-12-24 20:22:54 回复(0)
条件完全匹配(姓名、生日都相同)的有1条
除此之外right join还会返回右表中所有不匹配的记录3条
共4条
发表于 2022-03-28 16:13:42 回复(2)
+------+--------+------------+------+------+--------+------------+------+
| id   | name   | birth      | sex  | id   | name   | birth      | sex  |
+------+--------+------------+------+------+--------+------------+------+
| NULL | NULL   | NULL       | NULL | 1005 | NULL   | 2001-12-01 | 女   |
| 1004 | 张三   | 2000-08-06  | 男   | 1006 | 张三   | 2000-08-06 | 女   |
| NULL | NULL   | NULL       | NULL | 1008 | 李四   | NULL       | 女   |
| NULL | NULL   | NULL       | NULL | 1010 | 李四   | 2001-12-01 | 女   |
+------+--------+------------+------+------+--------+------------+------+

发表于 2022-03-28 13:36:44 回复(0)
right join以右为主 女生四条数据所以全部显示 四行(其中两行与男生匹配)
编辑于 2024-04-13 01:53:34 回复(0)