【原文地址】http://www.cnblogs.com/myprogram/archive/2013/01/24/2874666.html
自己补充下两点
【一。内连与外连接】
1.什么时候使用连接查询:简单说来,为了满足业务的需求,我们需要将多个表中的数据集成一个结果集返回给用户。
2。用转载的文章中的两个表来说明
| customerid | city |
| FISSA | Madrid |
| FRNDO | Madrid |
| KRLOS | Madrid |
| MRPHS | Zion |
| orderid | customerid |
| 1 | FRNDO |
| 2 | FRNDO |
| 3 | KRLOS |
| 4 | KRLOS |
| 5 | KRLOS |
| 6 | MRPHS |
| 7 | NULL |
内连接:查询操作列与连接条件匹配的数据行
select * from customers C join orders O on c.customerid = o.customerid
| customerid | city | orderid | customerid |
| FRNDO | Madrid | 1 | FRNDO |
| FRNDO | Madrid | 2 | FRNDO |
| KRLOS | Madrid | 3 | KRLOS |
| KRLOS | Madrid | 4 | KRLOS |
| KRLOS | Madrid | 5 | KRLOS |
| MRPHS | MRPHS | 6 | MRPHS |
select * from customers C left outer join orders O on c.customerid = o.customerid

select * from customers C right outer join orders O on c.customerid = o.customerid

【二。from 和on 】平时写sql 语句几乎都是用的select ..from where 即使是两个表之间的连接也是这样,从来没考虑过,这样写,到底是外连接还是内连接。on和from 有啥区别。
select * from customers C , orders O where c.customerid = o.customerid

事实表示。这样子写,可以拆分为三部分。
(1) from customers C , orders O 默认为内连接
(2)where c.customerid = o.customerid 执行where 子句,在(1)的结果中进行过滤
(3)select * ,执行
SELECT 子句
本文深入探讨了SQL中的内连接与外连接查询的区别与应用场景,通过实例展示了如何使用内连接和外连接从多个表中获取所需数据。详细解释了from和on在SQL语句中的作用,并提供了SQL查询语句拆分解析。
1016

被折叠的 条评论
为什么被折叠?



