我在尝试弄清楚如何执行以下任务时遇到了一些麻烦。
表1
╔═══╦════════════╦═════════════╗
║ ║ Apple ║ Banana ║
╠═══╬════════════╬═════════════╣
║ 1 ║ 20 ║ 15 ║
╚═══╩════════════╩═════════════╝
表2
╔═══╦════════════╦═════════════╦═════════════╗
║ ║ Cat ║ Banana ║Apple ║
╠═══╬════════════╬═════════════╬═════════════╣
║ 1 ║ bbb ║ 10 ║ 1 ║
║ 2 ║ aaa ║ 2 ║ 2 ║
║ 3 ║ abc ║ 1 ║ 3 ║
╚═══╩════════════╩═════════════╩═════════════╝
所以两张桌子都有香蕉和苹果, 我想从表1(将是Apple = 20,banana = 15)中取一行并使用这些数字减去表2的香蕉和苹果中的所有行,而两个表都有不同的方式来订购列。
我想得到结果
apple = 14 ( which is done by doing 20 - 1 - 2 - 3)
banana = 2 (which is done by doing 15 - 10 - 2 - 1)
有没有办法在查询中执行此操作,而不是从某处保存值并逐个进行数学处理?
感谢
答案 0 :(得分:2)
您可以尝试这样的事情:
select t2.Apple - t1.a
, t2.Banana - t1.b
from (select sum(banana) as b, sum(apple) as a from tbl2) t1
join tbl1 t2
答案 1 :(得分:1)
可能你可以用一个SQL来做 - 但是如果表中会有更多数据,这将非常慢。 更好的是做两个单独的查询并用PHP进行数学运算。