我不知道这里发生了什么。也许我一直在盯着这段代码。
我的查询如下:
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(标记为A
和B
)时,它们会有所不同。
我做错了什么?
答案 0 :(得分:1)
可能只是sw.sku_warehouse_id
而不是sw.warehouse_id
?