Postgres 查询显示可为空字段

问题描述

我有两张桌子:

Table A
id,name,b_id,c_id
1   aaa     1       1
2   bbb     2       1
3   ccc     NULL    1
Table B
id,bb_id
1   5
2   6

我试试这个查询

SELECT a.id,a.name
FROM a
LEFT JOIN b ON b.id = a.b_id
WHERE b.bb_id = 5

我想得到这样的结果:

1,aaa
3,ccc

或者如果 bb_id = 6:

2,bbb
3,ccc

但我的结果只有一行没有可以为空的行。如何达到这个结果?

解决方法

嗯。 . .您似乎想要 NULL 到许多任何 bb_id 值:

SELECT a.id,a.name
FROM a LEFT JOIN
     b
     ON b.id = a.b_id
WHERE b.bb_id = 5 OR a.b_id IS NULL;