多表联合查询查询不完整,另一个表没有数据就查不出来主表的数据

发布时间 2023-06-19 02:35:56作者: Himmelbleu

这个情况,是因为通过 inner join 查询,导致查询的结果因外表没有数据而导致主表数据查询不出来。

可以使用 left join 进行多表查询,从表没有数据时,主表也可以查询出数据来。

如下 SQL:

select * from table_a as a left join table_b as b on a.id = b.a_id

left join 是以 table_a 表的记录为基础,左表(即 table_a 表);table_b 可以看成右表(即 table_b 表)。

换句话说,左表(主表)的记录将会全部表示出来,而右表(从表)只会显示符合搜索条件的记录,右表记录不足的地方均为 NULL。

而 inner join 和 left join 不相同,它只会显示两个表中符合条件的行,而不符合的不显示出来。