mysql从一个表中获取一行,从另一个表中减去多行

mysql从一个表中获取一行,从另一个表中减去多行,mysql,sql,Mysql,Sql,我在想如何完成下面的任务时遇到了一些困难 表1 ╔═══╦════════════╦═════════════╗ ║ ║ Apple ║ Banana ║ ╠═══╬════════════╬═════════════╣ ║ 1 ║ 20 ║ 15 ║ ╚═══╩════════════╩═════════════╝ 表2 ╔═══╦════════════╦═════════════╦═════════════╗ ║ ║ Cat

我在想如何完成下面的任务时遇到了一些困难

表1

╔═══╦════════════╦═════════════╗
║   ║ Apple      ║ Banana      ║
╠═══╬════════════╬═════════════╣
║ 1 ║ 20         ║ 15          ║
╚═══╩════════════╩═════════════╝
表2

╔═══╦════════════╦═════════════╦═════════════╗
║   ║ Cat        ║ Banana      ║Apple        ║
╠═══╬════════════╬═════════════╬═════════════╣
║ 1 ║ bbb        ║ 10          ║ 1           ║
║ 2 ║ aaa        ║ 2           ║ 2           ║
║ 3 ║ abc        ║ 1           ║ 3           ║
╚═══╩════════════╩═════════════╩═════════════╝
两张桌子上都有香蕉和苹果, 我想从表1中取一行(苹果=20,香蕉=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

您可以尝试以下方法:

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

您可以尝试以下方法:

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

您可以尝试以下方法:

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来实现这一点,但是如果表中有更多的数据,这将非常缓慢。
更好的方法是使用PHP进行两个单独的查询和数学运算。

也许您可以通过一个SQL来完成,但是如果表中有更多的数据,这将非常缓慢。
更好的方法是使用PHP进行两个单独的查询和数学运算。

也许您可以通过一个SQL来完成,但是如果表中有更多的数据,这将非常缓慢。
更好的方法是使用PHP进行两个单独的查询和数学运算。

也许您可以通过一个SQL来完成,但是如果表中有更多的数据,这将非常缓慢。

最好是用PHP进行两个单独的查询和计算。

感谢您的快速回复,我将首先尝试一下。只是想知道我什么时候做t2.Apple-t1.Apple之类的事情。。如果它们都有字符串类型,那么mysql还能用吗?谢谢你的快速回复,我想先试试。只是想知道我什么时候做t2.Apple-t1.Apple之类的事情。。如果它们都有字符串类型,那么mysql还能用吗?谢谢你的快速回复,我想先试试。只是想知道我什么时候做t2.Apple-t1.Apple之类的事情。。如果它们都有字符串类型,那么mysql还能用吗?谢谢你的快速回复,我想先试试。只是想知道我什么时候做t2.Apple-t1.Apple之类的事情。。如果两个都有字符串类型,它在mysql中还能工作吗?实际上我需要计算大约15列,到目前为止有50行,它会随着时间的推移而增长,如果我把它分成两个查询,会怎么样?在50行中,应该可以工作-但是如果你有500-1000行,这可能会很慢。这取决于许多其他条件。从我的经验来看,select中的select就像2-3s一样工作,在2行+php中就像0,2s一样,数据量相同,结果相同,表结构没有其他变化。我想我现在只使用1个查询,看看它有多糟糕,然后再进行调整。实际上,我需要计算大约15列,到目前为止,它有50行,它会一次又一次地增长,如果我把它分成两个查询,会怎么做?在50行中,这应该可以工作-但是如果你有500-1000行,这可能会非常慢。这取决于许多其他条件。从我的经验来看,select中的select就像2-3s一样工作,在2行+php中就像0,2s一样,数据量相同,结果相同,表结构没有其他变化。我想我现在只使用1个查询,看看它有多糟糕,然后再进行调整。实际上,我需要计算大约15列,到目前为止,它有50行,它会一次又一次地增长,如果我把它分成两个查询,会怎么做?在50行中,这应该可以工作-但是如果你有500-1000行,这可能会非常慢。这取决于许多其他条件。从我的经验来看,select中的select就像2-3s一样工作,在2行+php中就像0,2s一样,数据量相同,结果相同,表结构没有其他变化。我想我现在只使用1个查询,看看它有多糟糕,然后再进行调整。实际上,我需要计算大约15列,到目前为止,它有50行,它会一次又一次地增长,如果我把它分成两个查询,会怎么做?在50行中,这应该可以工作-但是如果你有500-1000行,这可能会非常慢。这取决于许多其他条件。根据我的经验,在select中的select像2-3s一样工作,在2行+php中的select像0,2s一样,具有相同的数据量和相同的结果,在表结构中没有其他变化。我想我现在只使用1个查询,在进行调整之前看看它有多糟糕。