先说简单的,union就是把两个结果集合并到一起,union有去重的功能.
union就是把结果集简单的合在一起(union要检查重复).并到同一列里 如果俩的列都起了别名只要第一个的.
select da.id 一 from j_yhda da where da.yhmc like '范%'
union
select qf.id 二 from s_qf qf where qf.yhid like '3%'
就是简单的合在一起
union 检查重复,union all不检查重复(很简单的合在一起).
表连接.
最简单的连接:直接做笛卡尔积
,from
自连接 :自己跟自己连接
select * from test t1 join test t2 on t1.a = t2.b
内连接(join 或 innerjoin , join == innerjoin):
Select * From a Inner Join b On a.id=b.id
满足条件的a的行和满足条件的b的行连接
外连接(leftjoin 或 rightjoin
select da.yhmc , qf.qfje from j_yhda da left join s_qf qf
on da.id = qf.yhid //查出来所有用户,只有张的qfje有值.别人的都没值 这就是外连接.左边的都要,再要符合条件的右边的. (得到的行数为第一个表的行数) (X 错)
等价于
select da.yhmc , qf.qfje from s_qf qf right join j_yhda da
on da.id = qf.yhid
全连接(full join , fulljoin == full out join)
就是LEFT JOIN和RIGHT JOIN和合并,左右两表的数据都全部显示。
如下这四条记录.
Carter 77895
Carter 44678
Bush
如果是left join 的话,有1,2,3记录
如果是right join 的话,有1 2 4记录.
full join就是 1 2 3 4都有
join是连接查询,子查询通常更好,子查询下一篇说