我有两个表 authors 和 styles 之间的关系。 每个作者都与一种风格相关联,在特殊情况下作者没有风格(IS NULL)。
将引用设置为 NULL 没有问题,但是进行查询以选择作者和样式时出现问题。
例如查询:
SELECT "authors"."id", "authors"."name", "styles"."name", "authors"."comments" FROM
"authors" , "styles" WHERE "authors"."style" = "styles"."id"
只是忽略具有 NULL 样式的作者(正如预期的那样)。
我需要做一个选择,它还列出了具有 NULL 样式的作者,就像左连接所做的那样(由于某些原因我不能使用 LEFT JOIN)。
有没有不包含显式连接的解决方案?
最佳答案
最明显的解决方案是 LEFT OUTER JOIN。
参见:http://www.postgresql.org/docs/8.1/static/tutorial-join.html
如果您不想使用显式连接,您应该可以使用 UNION
SELECT "authors"."id", "authors"."name", "styles"."name", "authors"."comments" FROM
"authors" , "styles" WHERE "authors"."style" = "styles"."id"
UNION
SELECT "authors"."id", "authors"."name", "", "authors"."comments" FROM
"authors" WHERE "authors"."style" IS NULL
关于postgresql - 在可为空的引用上选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/388763/