MySQL查询之关联查询
一、inner join 内连接查询
取两张表有关联的所有数据,没有关联的数据不获取。

查询示例:
SELECT a.*, u.* FROM articles a -- 给article表定义别名a,定义别名的两种方式(1.表名 别名。 2.表名 as 别名) INNER JOIN user_one u on u.id = a.user_one_id
二、left join 左外关联查询,等效于left outer join
取left join关键字左边表的所有数据和left join关键字右边表与左边表有关联的数据,不获取left join关键字右边表没有与左边表关联的数据。

查询示例:
-- 左外连接,以左边表为基准, SELECT * FROM articles a LEFT outer JOIN user_one u on u.id=a.user_one_id
三、left join 左内连接,加条件的
取left join关键字左边表没有与右边表关联的数据,不获取有关联的和右边表的数据。

查询示例:
SELECT a.*, u.* FROM articles a LEFT JOIN user_one u ON u.id = a.user_one_id WHERE u.id is NULL
四、right join 右外连接,等效于right outer join
获取right join关键字右边表的所有数据与左边表有关联的数据,不获取左边表没有关联的数据。

查询示例:
-- 右外连接,以右边表为基准 SELECT * from articles a RIGHT OUTER JOIN user_one u on u.id = a.user_one_id
五、right join 右内连接
获取right join关键字右边表里没有与左边表关联的数据,不获取关联的数据和左边表的数据。

-- 右内连接,左边表没有 SELECT a.*, u.* from articles a RIGHT JOIN user_one u ON u.id= a.user_one_id WHERE a.user_one_id is null

浙公网安备 33010602011771号