SQL |获得产品和产品变体

时间:2014-02-11 09:21:28

标签: mysql sql performance

我有以下mysql结构:

`product`
id  |   name        |   quantity    | unit
10  |   Color bath  |   12          |   L
20  |   Color house |   15          |   L

`product_variant`
id  |   masterid    |   name        |   quantity    |   unit
100 |   10          |   Color bath  |   10          |   L
200 |   10          |   Color bath  |   20          |   L
300 |   20          |   Color house |   20          |   L

我们的查询应该返回:

向我提供所有产品并向我提供此产品的所有产品变数,并返回每个产品/ product_variant一行:

product.id as masterid, product.id/product_variant.id, product.name, product.quantity/product_variant.quantity, product.unit/product_variant.unit
10, 10, Color bath, 12, L
10, 100, Color bath, 10, L
10, 200, Color bath, 20, L
20, 20, Color house, 15, L
20, 300, Color house, 20, L

我们尝试使用UNION SELECT,但这似乎不是正确的解决方案。 10.000行(使用索引)最多需要2秒。 如果不使用UNION,还有其他机会获得我们需要的东西吗?

1 个答案:

答案 0 :(得分:0)

我不是因为你需要加入两个表格UNIONproduct而不是product_variant而你想要做的事情是什么,当你加入它们时你会得到(如你的例子中)product.id = 10的两行不多也不少,而你期待3。