sql语句记录

内连接(INNER JOIN)
隐式的内连接,没有INNER JOIN,形成的中间表为两个表的笛卡尔积,使用where语句过滤
sql:SELECT * FROM t_staff s,t_depart d WHERE s.d_id = d.id;

显示的内连接,一般称为内连接,有INNER JOIN,形成的中间表为两个表经过ON条件过滤后的笛卡尔积
sql:SELECT * FROM t_staff s INNER JOIN t_depart d ON s.d_id=d.id

外连接(OUTER JOIN)
左外连接(LEFT OUTER JOIN) 保留左边表
sql:SELECT * FROM t_staff s LEFT OUTER JOIN t_depart d ON s.d_id=d.id;

右外连接(RIGHT OUTER JOIN) 保留右边表
sql:SELECT * FROM t_staff s RIGHT OUTER JOIN t_depart d ON s.d_id=d.id;

全外连接(FULL OUTER JOIN)
注意:MySQL是不支持全外的连接的,这里给出的写法适合Oracle和DB2。
sql:SELECT * FROM t_staff s FULL OUTER JOIN t_depart d ON s.d_id=d.id;
但是可以通过左外和右外求合集来获取全外连接的查询结果
sql:
SELECT * from t_staff s LEFT JOIN t_depart d ON s.d_id=d.id
UNION
SELECT * from t_staff s RIGHT JOIN t_depart d ON s.d_id=d.id

posted @ 2019-05-31 13:42  一天到晚想名字  阅读(184)  评论(0编辑  收藏  举报