【发布时间】:2018-06-21 15:17:03
【问题描述】:
我在获取选择查询以返回我需要的数据时遇到了一些问题。请参阅下面的简化示例。
Sku 表
Sku SkuId
==================
ABC-123 123
DEF-456 456
GHI-789 789
JKL-987 987
SkuCombo 表
SkuId SkuComboId Qty
===========================
123 456 1
123 789 2
123 987 1
“组合”商品是赋予包含多个商品的商品的 sku 编号。例如,对于 sku ABC-123,您需要从 Sku table 中查找 Sku 以获取 SkuId(123),然后使用 SkuId 获取 SkuComboIds (456, 789、987) 来自SkuCombo。然后使用Sku 表上的那些得到他对应的Sku。以下查询几乎可以让我到达那里,但我不知道如何从SkuCombo 表中获取Qty 列?:
select *
from Skus
where SkuId in (Select SkuComboId
from SkuCombo sc
join Skus s on s.SkuId = sc.SkuId
where s.Sku = 'ABC-123')
想要的结果
Sku SkuId Qty
============================
DEF-456 456 1
GHI-789 789 2
JKL-987 987 1
【问题讨论】:
-
作为答案的单连接查询有什么问题?