sql表三个表关联,放一个表没有数据,如何使一个关联表也不显示数据?

sql表a.b. c表left join关联后,其中a.b两个表有数据,c关联b,当c表没有数据时,b和c表均不显示信息,但是显示a表的一条数据

你可以使用 LEFT JOIN 来实现在一个关联表没有数据时不显示数据的效果。在这种情况下,可以通过将查询结果限制为只返回与关联条件匹配的行,从而过滤掉没有数据的关联表的结果。

具体来说,你可以使用以下 SQL 查询语句:


SELECT *

FROM a

LEFT JOIN b ON a.id = b.a_id

LEFT JOIN c ON b.id = c.b_id

WHERE c.id IS NOT NULL


这个查询语句将 a 表与 b 表关联,然后将 b 表与 c 表关联。如果 c 表中没有匹配的数据,那么 WHERE 子句中的条件 c.id IS NOT NULL 将过滤掉这些行,从而不会显示任何与 c 表有关的数据,而只会显示与 a 表和 b 表有关的数据。

请注意,这个查询语句前提是你至少需要一个 a 表中有匹配数据的记录才能显示,因为如果没有 a 表中的匹配记录,那么整个查询结果将为空,即使 b 表中有匹配数据。

温馨提示:答案为网友推荐,仅供参考
相似回答