我尝试使用以下查询更新项目表中基于字段tbl
的颜色的表item_id
中的颜色。但我收到错误Sql error (1242)
。
update tbl mt
left join tbl_detail dt on mt.tbl_No = dt.tbl_No
set dt.color_Id =
(
select p.color_ID
from ( select dt.item_Id, dt.color_Id
from tbl mt
left join tbl_detail dt on mt.tbl_No = dt.tbl_No
where mt.Tipe = 2 ) h
left join itemp on h.item_id = p.item_id
)
where mt.Tipe = 2 ;
我想使用item表中的现有颜色更新表tbl中的字段颜色。我该怎么做?
我尝试过这样一个简单的语法,但后来我得到了sql error (1442)
update tbl mt
left join tbl_detail dt on mt.tbl_No = dt.tbl_No
left join item p on dt.item_Id = p.item_Id
set dt.color_Id = p.color_id
where mt.Tipe = 2 ;
示例:
表格tbl:
|tbl_No|tipe|
1 2
2 2
3 2
表tbl_detail:
|tbl_detail_No|tbl_No|item_id|color_id|
1 1 1 null
2 1 2 null
1 2 3 null
2 2 4 null
表项:
|item_id|color_id|
1 1
2 2
3 3
4 4
我想根据表color_id
中的tbl_detail
更新表item_id
中的item
;更新后,表tbl_detail
应如下所示。
表tbl_detail:
|tbl_detail_No|tbl_No|item_id|color_id|
1 1 1 1
2 1 2 2
1 2 3 3
2 2 4 4
(哦,我真的很难解释它,希望有人能理解,因为英语不是我的第一语言。) 感谢所有的帮助和建议。