sql内联外联
㈠ 关于SQL数据库中cross join 和inner join用法上的区别
=====
举个简单的例子吧,从结果来理解比较具体些。
a表
name sex
张三 男
李四 女
b表
name age
李四 30
王五 23
1\全外连接
select a.name,a.sex,b.name,b.age
from a full outer join b on a.name=b.name
结果如下,
name sex name age
张三 男 NULL NULL
李四 女 李四 30
NULL NULL 王五 23
关联字段name,左表有而右表没有的,如张三,b.name,b.age都为NULL,加上左右两边都有的就是左连接的结果;而右表有而左表表没有的,如王五,a.name,a.sex都为NULL,加上左右两边都有的就是右连接的结果;左右两边都有的如,李四,这就是内连接。相见如下
2\左
select a.name,a.sex,b.name,b.age
from a left outer join b on a.name=b.name
结果如下
name sex name age
张三 男 NULL NULL
李四 女 李四 30
2\右
select a.name,a.sex,b.name,b.age
from a right outer join b on a.name=b.name
结果如下
name sex name age
李四 女 李四 30
NULL NULL 王五 23
3\内联
select a.name,a.sex,b.name,b.age
from a inner join b on a.name=b.name
结果如下
name sex name age
李四 女 李四 30
4\交叉
select a.name,a.sex,b.name,b.age
from a cross join b on a.name=b.name
结果如下
name sex name age
张三 男 李四 30
李四 女 王五 23
张三 男 王五 23
李四 女 李四 30
㈡ 在SQL 语句中SELECT PoctID Suppliers.SuppliersID,CompayName FROM Suppliers JION Procts
LIKE 的意思就是形似至于后面单引号里面的主要是一个匹配的表达式,主要匹配CompayName 开头字母为“F”的结果集,这个语句是一个内联查询语句,主要是返回最少的匹配行结果,查询的结果为PoctID Suppliers.SuppliersID,CompayName 内联表为Suppliers 和Procts
内联条件为Supplirs.suppliers =Procts.SupplierID,最后依据查询的结果紧接着根据
WHERE UnitPrice>$10 AND CompayName LIKE'F%'
这个条件进行筛选