【发布时间】:2012-08-08 21:14:53
【问题描述】:
我有两个表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)。
如果我使用上面的join,它会将结果表中匹配行的启用字段设置为false,但不会将其余行设置为true。启用的列只是空的(在 tableB 中找不到匹配的行)。
我的问题是,如果 tableB 中没有匹配的行,有什么方法可以告诉外连接我想使用 tableA.enabled,否则,使用 tableB.enabled?
或者还有其他更好的方法吗?
我为此使用 PostgreSQL。也欢迎任何其他 SQL 类型的想法。
非常感谢
【问题讨论】:
标签: sql postgresql