多表联合查询

  1. 内连接

可以把INNER JOIN 想成两个集合的交集,INNER JOIN 连接表的语法:

SELECT column, another_table_column, …

FROM mytable (主表)

INNER JOIN another_table (要连接的表)

ON mytable.id = another_table.id (主键连接,两个相同的连成1条)

WHERE condition(s)

ORDER BY column, … ASC/DESC

LIMIT num_limit OFFSET num_offset;

 INNER JOIN 先将两个表数据连接到一起. 两个表中如果通过ID互相找不到的数据将会舍弃,INNER JOIN 可以简写做 JOIN. 两者是相同的意思

    2. 外连接

外连接包括:左连接LEFT JOIN,右连接RIGHT JOIN 和 全连接FULL JOIN

用LEFT/RIGHT/FULL JOINs 做多表查询

SELECT column, another_column, …

FROM mytable INNER/LEFT/RIGHT/FULL JOIN another_table

ON mytable.id = another_table.matching_id

WHERE condition(s)

ORDER BY column, … ASC/DESC

LIMIT num_limit OFFSET num_offset;

在表A 连接 B, LEFT JOIN保留A的所有行,不管有没有能匹配上B

RIGHT JOIN则保留所有B里的行

FULL JOIN 不管有没有匹配上,同时保留A和B里的所有行,如果某一行在另一个表不存在,会用 NULL来填充结果数据

多表联合查询_第1张图片

注意: 这些Join也可以写作 LEFT OUTER JOINRIGHT OUTER JOIN, 或 FULL OUTER JOIN, 和 LEFT JOINRIGHT JOIN, and FULL JOIN 等价.

 

 

 

 

你可能感兴趣的:(SQL)