a表
b表
-- 内连接 INNER JOIN
SELECT * FROM a INNER JOIN b ON a.id = b.id;
运行结果
-- 左连接 LEFT JOIN
SELECT * FROM a LEFT JOIN b ON a.id = b.id;
运行结果
-- 右连接 RIGHT JOIN
SELECT * FROM a RIGHT JOIN b ON a.id = b.id;
运行结果
-- 全连接union all
SELECT * FROM a UNION ALL SELECT * FROM b;
SELECT * FROM a UNION ALL SELECT * FROM b ORDER BY;
-- 排序的话 只能对最终结果进行排序,不能对单个子句进行排序
运行结果
-- 全连接 UNION
SELECT * FROM a UNION SELECT * FROM b
注意:
使用UNION时:
1.UNION 关键字两边的列数必须相同
2.完全相等的行会被合并(去重)
运行结果
union all 和union的区别:
union all不做去重处理,union会去重
union all不会对获取的结果进行排序操作,union会进行排序
在没有去重的前提下,使用union all的执行效率要比union高