发布网友 发布时间:2022-05-03 07:17
共2个回答
懂视网 时间:2022-05-03 11:38
语句如下: SELECT A.name, B.address FROM A LEFT JOIN B ON A.id = B.A_id 查询结果为: name address 张 北京 李 NULL 王 上海 /******************************** right join 右连接*****************************************/ 包容性:B表包容A表,右连接右表是全的.(right join 或 right outer join ) SQL语句如下: SELECT A.name, B.address FROM A RIGHT JOIN B ON A.id = B.A_id 查询结果为: name address 张 北京 王 上海 NULL 南京 /******************************** inner join 内连接*****************************************/ 排他性:A,B表中至少有1个匹配时,才返回行。两表的交集 SQL语句如下: select A.name,B.address from A inner join B on A.id = B.A_id 查询结果为: name address 张 北京 王 上海 inner join 内连接等价于下面的sql: SELECT A.name, B.address FROM A, B WHERE A.id = B.A_id /******************************** full join 全连接*****************************************/ 注释:全外连接返回参与连接的两个数据集合中的全部数据,无论它们是否具有与之相匹配的行。在功能上,它等价于 对这两个数据集合分别进行左外连接和右外连接,然后再使用消去重复行的并操作将上述两个结果集合并为一个结果集 。(full join 或 full outer join ) SQL语句如下: select * from A full join B 查询结果为: id name id address A_id 1 张 1 北京 1 2 李 1 北京 1 3 王 1 北京 1 1 张 2 上海 3 2 李 2 上海 3 3 王 2 上海 3 1 张 3 南京 10 2 李 3 南京 10 3 王 3 南京 10 /******************************** CROSS JOIN(不带条件where...)***********************************/ 注释:返回3*3=9条记录,即笛卡尔积 SQL语句如下: SELECT * FROM A CROSS JOIN B 查询结果为: id name id address A_id 1 张 1 北京 1 2 李 1 北京 1 3 王 1 北京 1 1 张 2 上海 3 2 李 2 上海 3 3 王 2 上海 3 1 张 3 南京 10 2 李 3 南京 10 3 王 3 南京 10 CROSS JOIN等价于: select * from A,B数据库操作-内连接外连接
标签:left join lin 卡尔 ros from sel HERE 左连接 全连接
热心网友 时间:2022-05-03 08:46
有区别左外连接是返回主表的所有信息,如果从表没有主表信息显示为空而内连接是以从表为主如没数据那么就不显示举个例子如有2张表 student gradestudent有sid,sname两列有3条数据 1,呵呵 2,嘿嘿 3,嘻嘻grade有score,sid有2条数据 90,1 80,2比如我们要查哪个人考了多少分呢么左连接就是呵呵 90嘿嘿 80嘻嘻 null内连接就是呵呵 90嘿嘿 80