我有两个表 tableA 和 tableB,它们具有相同的结构:
rowid: big int
name:character variying
enabled: boolean
现在我对这两个表进行了外部连接
select tableA.rowid, tableA.name, tableB.enabled
from tableA
left outer join
tableB
on tableA.rowid = tableB.rowid
tableA 包含启用的列全部为 true 的行,而 tableB 包含 tableA 中应关闭的一些行(启用的列为 false)。
如果我使用上面的连接,它会将结果表中匹配行的启用字段设置为false,但不会将其余行设置为true。启用的列只是空的(在 tableB 中找不到匹配的行)。
我的问题是,如果 tableB 中没有匹配的行,有什么方法可以告诉外连接我想使用 tableA.enabled,否则,使用 tableB.enabled?
或者有没有其他更好的方法来做到这一点?
我为此使用 PostgreSQL。也欢迎任何其他 SQL 类型的想法。
非常感谢