mysql多表查询

2018-07-07  本文已影响0人  iiceBug

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

  1. UNION 内部的 SELECT 语句必须拥有相同数量的列。
  2. 列也必须拥有相似的数据类型。
  3. 同时,每条 SELECT 语句中的列的顺序必须相同。
  4. UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名
  5. union all操作符同理,但是会保留重复的行。

举例

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

Union操作符可理解为将两个表进行垂直拼接,结果集不产生多的列。

JOIN可以细分如下:

  1. join ( inner join )
    如果表中有至少一个匹配,则返回行(INNER JOIN 与 JOIN)
    select * from table1 t1
    join table2 t2
    on t1.id = t2.id
    where t1.id < 100
  2. left join (left out join)
    即使右表中没有匹配,也从左表返回所有的行
  3. right join ( right out join)
    即使左表中没有匹配,也从右表返回所有的行
  4. full join(mysql不支持,可以使用union all达到效果,可参考https://blog.csdn.net/dujianxiong/article/details/79352520
    只要其中一个表中存在匹配,就返回行
  5. cross join
    返回笛卡尔积

注:更多细节参考https://blog.csdn.net/ljxfblog/article/details/52066006

上一篇下一篇

猜你喜欢

热点阅读