2

我通常会以编程方式执行此操作,但今天我处于学习状态......我环顾四周,但没有发现任何与我的问题完全一样的东西。

我有两个表item,person和第三个包含关联的表 , item_person。不是每个人都有一个项目,因此该关联并不总是存在。现在,我想status在表中维护一个列,该列item部分基于一个项目是否与一个人相关联。所以...

Table: item
    item_id
    description
    status

Table: person
    person_id
    name

Table: item_person
    item_id
    person_id

想象一下UPDATE1如果关联存在于item_person......

  • 是否有一个 MySQL 查询可以处理这个问题?

  • UPDATE如果关联不存在item_person.

4

2 回答 2

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
于 2013-02-09T21:35:45.877 回答
0
  1. 更新项目集 item_status = 1 其中存在 item_person.item = item.item_id
  2. 更新项目集 item_status = 1 不存在 item_person.item = item.item_id

请注意,这两个查询都未经测试,因为我无法从这里访问 mysql 并且您没有给出fiddle。如果您需要帮助调试,请随时发表评论。

于 2013-02-09T21:34:07.863 回答