Skip to content
On this page

多表查询

内连接

显示内连接比隐式内连接执行速度更快

sql
-- 隐式内连接
SELECT * FROM student s , score c WHERE s.s_id = c.s_id
-- 显示内连接
SELECT * FROM student s INNER JOIN score c ON s.s_id = c.s_id
-- INNER 可以省略
SELECT * FROM student s JOIN score c ON s.s_id = c.s_id

外连接

  • 左外连接
sql
SELECT s.*,c.s_score FROM student s LEFT OUTER JOIN score c ON s.s_id = c.s_id
-- OUTER 可以省略
SELECT s.*,c.s_score FROM student s LEFT JOIN score c ON s.s_id = c.s_id

右外连接

sql
SELECT c.*,s.s_name FROM student s RIGHT OUTER JOIN score c ON s.s_id = c.s_id
-- OUTER 可以省略
SELECT c.*,s.s_name FROM student s RIGHT JOIN score c ON s.s_id = c.s_id

联合查询

  • 两张表合并允许重复
sql
SELECT * FROM user where id > 20
UNION ALL
SELECT * FROM user where age > 30
  • 两张表合并不允许重复
sql
SELECT * FROM user where id > 20
UNION
SELECT * FROM user where age > 30