【发布时间】:2013-11-06 11:09:11
【问题描述】:
在我的查询中,我只想在第一个表的指定列为空时才加入表。我怎样才能加入。这是一个 INNER JOIN,有 3 个表。
这是我的问题。
SELECT item_id,item_name
FROM item i
INNTER JOIN supplier s ON i.item_id=s.items_id
INNER JOIN order O ON O.id=s.req_id
WHERE price>400 AND category='ALL';
只有当 item 表中的列 'item_order_id' 为 NULL 时,此连接才可用。如果该列不为空,则不应完成此连接。我如何在 Postgres 中进行操作(我使用 postgres 8)。
【问题讨论】:
-
在 where 子句中添加
AND i.item_order_id IS NULL? -
"Postgres 8" 涵盖五个主要版本(8.0、8.1、8.2、8.3 和 8.4) - 您应该说明您的确切版本。另请注意,仍然仅支持 8.4(但仅支持几个月),因此您应该真正计划升级到当前(例如 9.3)版本。
-
我用的是 8.0.3。版本升级可能是个好主意。但是对于我的系统环境,我必须保持当前版本。
标签: sql postgresql