查询连接结果似乎不正确

时间:2013-04-13 02:34:50

标签: postgresql left-join

我不知道这里发生了什么。也许我一直在盯着这段代码。

我的查询如下:

CREATE VIEW v_sku_best_before AS
  SELECT
    sw.sku_id,
    sw.sku_warehouse_id  "A",
    sbb.sku_warehouse_id "B",
    sbb.best_before,
    sbb.quantity
  FROM SKU_WAREHOUSE sw
    LEFT OUTER JOIN SKU_BEST_BEFORE sbb
      ON sbb.sku_warehouse_id = sw.warehouse_id
  ORDER BY sbb.best_before

我可以发布表定义,如果这有帮助,但我不确定它会。可以说SKU_WAREHOUSE.sku_warehouse_id是一个标识列,SKU_BEST_BEFORE.sku_warehouse_id是使用该标识作为外键的子标识。

以下是运行查询时的结果:

+--------+-----+----+-------------+----------+
| sku_id |  A  | B  | best_before | quantity |
+--------+-----+----+-------------+----------+
|  20251 | 643 | 11 | <<null>>    |      140 |
+--------+-----+----+-------------+----------+
(1 row)

联接指定sku_warehouse_id列必须相等,但是当我从每个表中提取ID(标记为AB)时,它们会有所不同。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

可能只是sw.sku_warehouse_id而不是sw.warehouse_id