表中每一行的联合

时间:2016-10-11 17:00:18

标签: mysql sql

我真的不知道标题应该是什么,但我会尽可能清楚地解释它。

我有一个在线食品门户网站,其中包括各种食物。根据食物,我描述了不同食物的不同属性。 为了简单起见,假设我出售蛋糕和包装。蛋糕可以具有以下属性,即它们具有重量并且取决于它们的价格变化的重量。

类似地,换行可以有两个属性,它们可以大小。

$ git checkout labor_um/data/UM_specs.xlsx
error: path 'labor_um/data/UM_specs.xlsx' is unmerged

这是我的三个表,一个是基表,而另外两个表可以与基表连接以获得所需的表。

当我必须在我的产品页面上显示每个产品时,会出现这种方法的真正问题。我可以简单地完成 base_product_table ID | product_code | product name | company_id 1 | 12345 | beer cake |343434defee 2 | 12346 | vodka cake |343434deereee 3 | 123451 | cheese wrap |wqeqwewwe 4 | 123453 | nb wrap |weqwew 5 | 123464 | ad wrap | adwadw cake_table Product_code |Quantity | price | weight 12345 | 34 |345 |0.5 12345 | 343 |600 |1.0 12345 | 4 |845 |1.5 12346 | 341 |345 |0.5 wraps_table Product_code |Quantity | price | size 123451 | 34 |345 |s 123451 | 343 |600 |l 123453 | 4 |845 |s 123464 | 341 |345 |s 但我需要显示产品价格与产品重量或尺寸(如果有)

enter image description here 上图显示了我在产品页面上显示产品的含义。

我如何实现我的解决方案?

更新 在蛋糕桌上,我有一个蛋糕,但有三个不同的重量,那么输出应该只有一个相应的蛋糕,重量是最小的重量和最小重量的价格。

类似地,换行包含两个大小小和大,输出将只有一个用于具有较小记录价格的换行。

2 个答案:

答案 0 :(得分:1)

我希望你需要输出如下查询。假设权重和大小都是相同的数据类型,否则使用强制转换从两个联合结果中返回相同的日期类型。

select product_name,price,weight as custom
from base_product_table bpt join cake_table ct on bpt.product_code = ct.product_code where weight = (select min(weight) from cake_table ct2 where ct.product_code = ct2.product_code)
union all
select product_name,price, size as custom
from base_product_table bp join wrap_table wt on bp.product_code = wt.product_code where size = (select min(size) from wrap_table w2 where wt.product_code = w2.product_code);

答案 1 :(得分:1)

这个SQL返回蛋糕的价格,假设你想要最小的价格(重量)。

-t

如果这样做比普遍建议的那样有效,那就是加入两个表格的问题:

sendmail -t