繁体   English   中英

如何在同一张表的子查询中更新和设置列的值

[英]How to UPDATE and set values to a column in a sub-query on the same table

我无法让这个 SQL 工作。 基本上我想UPDATEsort_order并将其设置为由同一张表上的子查询选择的parents_sort_order 这是我的SELECT查询,显示了我需要的数据....

SELECT p.id,p.sort_order,p.parent_id, (
  SELECT `sort_order` AS parent_sort_order
  FROM `product`
  WHERE id = p.parent_id
)
FROM  `product` p
WHERE p.dealer_id !=0
AND p.vendor_id >100

谢谢!

加入您的 select 版本:

SELECT p.id,p.sort_order,p.parent_id, b.sort_order as parent_sort_order
FROM  `product` p join `product` b
on p.id = b.parent_id
WHERE p.dealer_id !=0
AND p.vendor_id >100

更新选项 1:

update product a, product b set a.sort_order = b.parent_sort_order
where a.id = b.parent_id
and a.dealer_id !=0
and a.vendor_id > 100

更新选项 2:

update product a left join product b on a.id = b.parent_id 
set a.sort_order = b.parent_sort_order
where a.dealer_id !=0
and a.vendor_id > 100

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM