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

 

posted @ 2020-09-29 16:17  欧-阳  阅读(689)  评论(0)    收藏  举报