2011-05-17 64 views
1

假设3个表:MySQL - 有条件地添加来自不同表格的值?

  • 表1具有关于产品的价格信息(例如,基本价格)
  • 表2具有关于一个产品的附加价格因素的信息(例如税,折扣等)
  • 表3具有指示如果表1或表2或两个表应在计算产品的总价格

使用是否有可能在MySQL计算在这种情况下总和的标志吗?如果是这样,那么有关查询的一些指导将不胜感激。

+0

我相信这可以用存储过程来完成,是一个选项还是你需要它作为查询? – jopke 2011-05-17 07:41:37

+0

你能给我们表定义吗? – Flinsch 2011-05-17 07:43:23

+1

请问您可以发表一些“表2”的例子(或定义)吗? – 2011-05-17 07:44:56

回答

0
SELECT SUM(CASE (SELECT flag FROM table3) 
      WHEN onlyTable1 THEN t1.col 
      WHEN onlyTable2 THEN t2.col 
      ELSE t1.col+t2.col END) 

FROM table1 AS t1 JOIN table2 AS t2 
0

你可以使用MySQL的CASEIF你的目的,例如像这样:

SELECT IF(c.flag = ?, a.price + b.taxes - b.discount, a.price) 
FROM <Table 1> AS a 
JOIN <Table 2> AS b ON <what ever> 
JOIN <Table 3> AS c ON <what ever> 

如果我有表的定义,我能够发布更具体的例子。但是,也许,如果你看看CASEIF的文档,你可以找出你自己的解决方案。

相关问题