[英]mysql - taking one row from one table based on ID and DATE and get multiple rows in another table if not show null values
[英]mysql taking one row from a table and minus multiple rows from another table
我在尝试弄清楚如何完成以下任务时遇到了一些麻烦。
表格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)
有什么方法可以在查询中执行此操作,而不是从某个位置保存值并一个接一个地进行数学运算?
谢谢
您可以尝试如下操作:
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
可能您可以通过一个SQL来完成它-但是如果表中有更多数据,这将非常慢。 更好的方法是进行2个单独的查询,并使用PHP进行数学运算。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.