【发布时间】:2017-07-22 16:30:07
【问题描述】:
已编辑!!
我正在努力从表中获取我的数据,但我没有运气。
我的查询
SELECT CODES.CODE, WARE.QTY
FROM CODES
LEFT JOIN WARE ON WARE.ID = CODES.ID
GROUP BY CODES.CODE , WARE.QTY
ORDER BY CODES.CODE
我的代码表是
CODE |ID
--------------|-----------
1402201700006 | 123
1102201700006 | 124
我的商品桌是
QTY |ID
--------------|-----------
12 | 123
1 | 123
2 | 124
1 | 124
我的结果是
CODE |QTY
--------------|---------
123 |12
123 |1
124 |2
124 |1
而不是
CODE |QTY
--------------|---------
123 |13
124 |3
【问题讨论】:
-
请显示表的DDL并在您的deta模型中描述它们的含义,添加涉及的表的示例内容,查询的预期结果和查询的实际结果。例如,我怀疑您正在查询名为
warehouse的表以获取商品的 SKU。我会更早地从名为item的表中期待这一点。如果warehouse将项目存储在您的仓库中,则每个项目可能有多个记录(例如,每个仓库、每个存储的物理项目、每个存储位置等)。 -
您的仓库将不同的 SKU 归于同一商品(似乎不切实际)。在这种情况下你想发生什么?
-
没有更多信息,我注意到,在第一个查询中您使用 items.HEID = 'a78fa8a3' 和第二个 items.id = 'a78fa8a3'。此外,您在加入购物篮时使用 items.itemid... 那么您的 items 表中有多少个 id? :) 可能会有所作为
-
@InnaTichman 是的,你是对的,我编辑我的问题并更改为 .id ,发生这种情况是因为我想提供一个简单易懂的查询,而不是我真正的查询
-
@MarkRotteveel 是的!我在该表中的每个项目都有多个记录。但它是我能在我的查询中找到的唯一表。 :(
标签: sql join inner-join firebird