我通常会以编程方式进行此操作,但今天我的学习心情很好......我环顾四周,但没有发现任何与我的问题完全相符的事情。
我有两个表item
,person
,第三个表包含关联item_person
。不是每个人都有一个项目,因此关联并不总是存在。现在,我想在status
表中维护item
列,部分取决于项目是否与某个人相关联。所以......
Table: item
item_id
description
status
Table: person
person_id
name
Table: item_person
item_id
person_id
想象一下,如果UPDATE
中存在关联,我想1
项状态为item_person
是否有一个可以处理此问题的MySQL查询?
如果UPDATE
中存在关联不,是否有单个MySQL查询可以执行item_person
。
答案 0 :(得分:3)
-- If the association exists...
update item i
join item_person ip
on ip.item_id = i.item_id
set i.status = 1
-- If the association does not exist...
update item i
left join item_person ip
on ip.item_id = i.item_id
set i.status = 0
where ip.item_id is null
答案 1 :(得分:0)
请注意,这两个查询都是未经测试的,因为我无法从此处访问mysql并且您没有给出fiddle。如果您需要帮助调试,请随时发表评论。