Mysql 如何将一个表列值减去其他表列值

Mysql 如何将一个表列值减去其他表列值,mysql,sqlite,Mysql,Sqlite,我有两张桌子存货和销售 股票 出售 我想要减去数量后的结果 股票 救命啊 如果要将结果存储在mysql中,可以(使用关系名称)更新 或者使用id作为关系 update Stock as a inner join Sale as b on a.id = b.id set a.Qty = a.Qty -b.Qty 或者,如果你只是想要一个选择,你可以 select a.id, a.name, a.size, a.Qty -b.Qty as qty from fromStock as a in

我有两张桌子存货和销售

股票

出售

我想要减去数量后的结果

股票


救命啊

如果要将结果存储在mysql中,可以(使用关系名称)更新

或者使用id作为关系

update Stock as a
inner join Sale as b on a.id = b.id 
set a.Qty = a.Qty -b.Qty
或者,如果你只是想要一个选择,你可以

select a.id, a.name, a.size,  a.Qty -b.Qty as qty
from fromStock as a 
inner join Sale as b on a.id = b.id 
在sqlite中,不允许使用内部联接进行更新,因此使用子选择

update Stock 
set Qty = (    select Stock.Qty -Sale.Qty from Stock
                Inner join Sale on  Sale.name = Stock.name )
WHERE
EXISTS (
    SELECT *
    from Stock
                Inner join Sale on  Sale.name = Stock.name 
)

如果您想将结果存储在mysql中,您可以(使用关系的名称)更新

或者使用id作为关系

update Stock as a
inner join Sale as b on a.id = b.id 
set a.Qty = a.Qty -b.Qty
或者,如果你只是想要一个选择,你可以

select a.id, a.name, a.size,  a.Qty -b.Qty as qty
from fromStock as a 
inner join Sale as b on a.id = b.id 
在sqlite中,不允许使用内部联接进行更新,因此使用子选择

update Stock 
set Qty = (    select Stock.Qty -Sale.Qty from Stock
                Inner join Sale on  Sale.name = Stock.name )
WHERE
EXISTS (
    SELECT *
    from Stock
                Inner join Sale on  Sale.name = Stock.name 
)

您可以通过
id
name
连接表,然后简单地减去
Qty
值。添加名称以提高可读性

SELECT ST.id, ST.Name, ST.size, (ST.Qty - SA.Qty) AS Qty
FROM Stock ST
INNER JOIN Sale SA ON SA.id = ST.id AND SA.Name = ST.Name
如果不需要通过
Name
加入,则只能通过
id
as加入

SELECT ST.id, ST.Name, ST.size, (ST.Qty - SA.Qty) AS Qty
FROM Stock ST
INNER JOIN Sale SA ON SA.id = ST.id

更新SQLite的

UPDATE Stock 
SET Qty = ( SELECT ST.Qty - SA.Qty
            FROM Stock ST
            INNER JOIN Sale SA ON SA.id = ST.id )
WHERE id IN (SELECT id FROM Stock )

获取引用您可以通过
id
name
加入表,然后简单地减去
数量
值。添加名称以提高可读性

SELECT ST.id, ST.Name, ST.size, (ST.Qty - SA.Qty) AS Qty
FROM Stock ST
INNER JOIN Sale SA ON SA.id = ST.id AND SA.Name = ST.Name
如果不需要通过
Name
加入,则只能通过
id
as加入

SELECT ST.id, ST.Name, ST.size, (ST.Qty - SA.Qty) AS Qty
FROM Stock ST
INNER JOIN Sale SA ON SA.id = ST.id

更新SQLite的

UPDATE Stock 
SET Qty = ( SELECT ST.Qty - SA.Qty
            FROM Stock ST
            INNER JOIN Sale SA ON SA.id = ST.id )
WHERE id IN (SELECT id FROM Stock )

获取参考请尝试以下操作:

SELECT Stock.id, Stock.Name, Stock.size, (Stock.Qty - Sale.Qty) AS Qty
FROM Stock
INNER JOIN Sale ON Sale.id = Stock.id
试试这个:

SELECT Stock.id, Stock.Name, Stock.size, (Stock.Qty - Sale.Qty) AS Qty
FROM Stock
INNER JOIN Sale ON Sale.id = Stock.id
使用下面的查询

Select table.id,table.name,table.size,sum(table.qty) from
(Select id,name,size,qty from stock 
Union
Select id,name,size,qty*-1 from sale) as table group by table.id,table.name,table.size
使用下面的查询

Select table.id,table.name,table.size,sum(table.qty) from
(Select id,name,size,qty from stock 
Union
Select id,name,size,qty*-1 from sale) as table group by table.id,table.name,table.size

你在使用什么数据库?MySQL和SQLite不是一回事。MySQL和SQLite都是。你用的是什么数据库?MySQL和SQLite不是一回事。MySQL和SQLite都是..@10086 weel so。。你可以很容易地得到你的结果。我可以在SQLite中做什么?@10086 weel-so。。你可以很容易地得到你的结果我可以在SQLite中做什么?