两个表的mysql查询

时间:2018-03-30 23:04:48

标签: mysql sql join

我有两张桌子

Table TblParts
(id
detail
code
stock)


Table TblExistencias
(code
Serial)

我需要进行查询以使用TblParts.stock表(计数代码)升级TblExistencias

if TblExistencias.code = TblParts.code then Count(TblExistencias.code) and update TblParts.stock

我该怎么做?

2 个答案:

答案 0 :(得分:2)

你应该做这样的事情。 使用子查询更新语句

update TblParts set stock= COALESCE((select count(*) from TblExistencias where 
TblExistencias.code = TblParts.code),0)

答案 1 :(得分:0)

您应该通过在代码上加入TblParts和TblExistencias来获取TblExistencias的库存计数。 像,

select TE.CODE,COUNT(TE.CODE) AS COUNT
FROM TblParts TP
inner JOIN TblExistencias as TE ON TP.CODE=TE.CODE
GROUP BY TE.CODE

将上述查询用作更新查询的子查询,将上述查询的结果作为X别名,并将其与更新查询一起使用。所以你的更新查询将是

UPDATE TblParts as t
set stock=X.COUNT
from 
(select TE.CODE,COUNT(TE.CODE) AS COUNT
FROM TblParts TP
inner JOIN TblExistencias as TE ON TP.CODE=TE.CODE
GROUP BY TE.CODE
) AS X
 where t.CODE=X.CODE;