PHP/MYSQL-使用union更新子查询select
我在这里得到了我的查询,用于使用union显示现有数量,以便我可以得到结果ALINVTY3是我的主文件,我想根据我的联合结果更新我的项目数量。是否可以根据变量输出更新myallinvty3$totalPHP/MYSQL-使用union更新子查询select,php,mysql,Php,Mysql,我在这里得到了我的查询,用于使用union显示现有数量,以便我可以得到结果ALINVTY3是我的主文件,我想根据我的联合结果更新我的项目数量。是否可以根据变量输出更新myallinvty3$total **My table :** |allinvty3|(masterfile) ---------------- |in_code | |ecr_desc | |pric_cash |qty
**My table :**
|allinvty3|(masterfile)
----------------
|in_code |
|ecr_desc |
|pric_cash
|qty |
|ite_desc |
---------------
|barcode, branchtobranch,adjustment table(all tables have same fieldnames) |
----------------
|itemcode |
|qty |
|status |
---------------
这是我的Union all的示例输出,我希望获得数据并能够更新我的主文件allinvty3中的数量
$sql = "UPDATE allinvty3 as A, (
select
ite_desc,ecr_desc, pric_cash, t.itemcode as itemcode ,sum(t.qty) as qty
from (
select ite_desc,ecr_desc, pric_cash, itemcode,qty from barcode as bc inner JOIN allinvty3 as ait on bc.itemcode = ait.in_code
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from branchtobranch_tb as bb inner JOIN allinvty3 as ait on bb.itemcode = ait.in_code
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from adjustment_tb as adt inner JOIN allinvty3 as ait1 on adt.itemcode = ait1.in_code where adt.status='APPROVED'
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from stockreturn_tb as sb inner JOIN allinvty3 as ait on sb.itemcode = ait.in_code
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from notinclude_tb as nt inner JOIN allinvty3 as ait on nt.itemcode = ait.in_code where nt.status='COMPLETE'
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from purchase_tb as pt inner JOIN allinvty3 as ait on pt.itemcode = ait.in_code
union all
select ite_desc,ecr_desc, pric_cash, itemcode,(qty * -1) from soldout_dm as slp inner JOIN allinvty3 as ait2 on slp.itemcode = ait2.in_code
) as t
) as UD
SET
A.sa_onhand = UD.qty
WHERE
A.in_code = UD.itemcode";
$result = $conn->query($sql);
这是我的Union all的示例输出,我希望获得数据并能够更新我的主文件allinvty3中的数量
$sql = "UPDATE allinvty3 as A, (
select
ite_desc,ecr_desc, pric_cash, t.itemcode as itemcode ,sum(t.qty) as qty
from (
select ite_desc,ecr_desc, pric_cash, itemcode,qty from barcode as bc inner JOIN allinvty3 as ait on bc.itemcode = ait.in_code
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from branchtobranch_tb as bb inner JOIN allinvty3 as ait on bb.itemcode = ait.in_code
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from adjustment_tb as adt inner JOIN allinvty3 as ait1 on adt.itemcode = ait1.in_code where adt.status='APPROVED'
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from stockreturn_tb as sb inner JOIN allinvty3 as ait on sb.itemcode = ait.in_code
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from notinclude_tb as nt inner JOIN allinvty3 as ait on nt.itemcode = ait.in_code where nt.status='COMPLETE'
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from purchase_tb as pt inner JOIN allinvty3 as ait on pt.itemcode = ait.in_code
union all
select ite_desc,ecr_desc, pric_cash, itemcode,(qty * -1) from soldout_dm as slp inner JOIN allinvty3 as ait2 on slp.itemcode = ait2.in_code
) as t
) as UD
SET
A.sa_onhand = UD.qty
WHERE
A.in_code = UD.itemcode";
$result = $conn->query($sql);
更新时出错,就像下面的建议一样,尽管我的所有字段都是正确的
注意:尝试获取非对象的属性我想您可以这样做:
UPDATE allinvty3 A, (
select
ite_desc,ecr_desc, pric_cash, t.itemcode as itemcode ,sum(t.qty) as qty
from (
select ite_desc,ecr_desc, pric_cash, itemcode,qty from barcode as bc inner JOIN allinvty3 as ait on bc.itemcode = ait.in_code
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from branchtobranch_tb as bb inner JOIN allinvty3 as ait on bb.itemcode = ait.in_code
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from adjustment_tb as adt inner JOIN allinvty3 as ait1 on adt.itemcode = ait1.in_code where adt.status='APPROVED'
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from stockreturn_tb as sb inner JOIN allinvty3 as ait on sb.itemcode = ait.in_code
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from notinclude_tb as nt inner JOIN allinvty3 as ait on nt.itemcode = ait.in_code where nt.status='COMPLETE'
union all
select ite_desc,ecr_desc, pric_cash, itemcode,qty from purchase_tb as pt inner JOIN allinvty3 as ait on pt.itemcode = ait.in_code
union all
select ite_desc,ecr_desc, pric_cash, itemcode,(qty * -1) from soldout_dm as slp inner JOIN allinvty3 as ait2 on slp.itemcode = ait2.in_code
)
group by itemcode order by ecr_desc ASC
) UD
SET
A.qty = UD.qty
WHERE
A.itemcode = UD.itemcode
MySQL或中SELECT的更多更新。请共享您的表结构和示例数据。@TeKo,我刚刚共享了数据。我会尝试的。谢谢你的帮助,我相信qyu是错别字对吗@我真的很感激你的回答,但有一个错误“试图获得非对象的属性”。虽然我的字段名是正确的:(