sql连接,左连接。如果右表有条件,则不显示记录

发布于 2024-12-08 00:31:20 字数 809 浏览 0 评论 0原文

a字段:

id_a

b字段:

id_b
id_b2
filed_b
filed_b2

c字段:

id_c
filed_c

a数据:

id_a
----
1 
2 

b< /code> data:

id_b  id_b2  filed_b
----  -----  -------
1     1      1  
2     2      100 

table c data:

id_c  filed_c
----  ---------
1     adfa11111
2     dfdf22222

join

a join b on id_a=id_b
b join c on id_b2=id_c

目标是获取所有表 a 数据以及关联的 filed_c数据。 标准是:如果filed_b=100,则列出filed_c。

问题:使用左连接,如果右表没有条件,就可以。但一旦右表有条件,右表中不存在的记录将不会显示。

Table a fields:

id_a

Table b fields:

id_b
id_b2
filed_b
filed_b2

Table c fields:

id_c
filed_c

table a data:

id_a
----
1 
2 

table b data:

id_b  id_b2  filed_b
----  -----  -------
1     1      1  
2     2      100 

table c data:

id_c  filed_c
----  ---------
1     adfa11111
2     dfdf22222

join

a join b on id_a=id_b
b join c on id_b2=id_c

The goal is to get all table a data and associated filed_c data.
Criterion is: if filed_b=100, list filed_c. otherwise leave filed_c null.

Problem: used left join, if no criteria on the right table, it's fine. But once there's a criteria on right table, the records not exist in right table won't show up.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终陌 2024-12-15 00:31:20

获得与左外连接一起使用的 where 条件的技巧是将条件放入连接子句中。如果您在 where 子句中检查 b.filed_b ,则会排除值为 null 的行,当表 b.

你的情况是这样的。

select *
from a
  left outer join b
    on a.id_a = b.id_b and
       b.filed_b = 100
  left outer join c
    on b.id_b2 = c.id_c

The trick to get a where condition to work with a left outer join is to put the criteria in the join clause. If you checked against b.filed_b in the where clause you exclude the rows where the values is null which it is when there is no match in table b.

Something like this in your case.

select *
from a
  left outer join b
    on a.id_a = b.id_b and
       b.filed_b = 100
  left outer join c
    on b.id_b2 = c.id_c
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文