我想基于链接表parent
更新baby
的字段。如果任何链接的婴儿的parent.optin
= 1,则需要将baby.optin
值设置为1。
这是我目前正在尝试为一位父母(id为11)运行查询的查询
UPDATE parent p
INNER JOIN baby b
ON p.id = b.parent_id
AND b.optin = 1
SET p.optin=b.optin
WHERE p.id = 11
父母有2个婴儿,一个选择加入,一个没有选择。目前,我的查询未将p.optin设置为1。
示例数据:
父级
+----+-------+-------+
| id | name | optin |
+----+-------+-------+
| 11 | dave | 0 |
+----+-------+-------+
宝宝
+----+-----------+---------+-------+
| id | parent_id | name | optin |
+----+-----------+---------+-------+
| 2 | 1 | jane | 0 |
| 3 | 1 | freddie | 1 |
+----+---------------------+-------+
使用以上数据,我想将Parent.optin值设置为1,因为freddie的optin值为1。如果freddie的optin值为0,则parent.optin也将为0。
最佳答案
我想你试试这个。如果您无法解决错误,请告诉我。
UPDATE parent p, baby b
INNER JOIN baby b ON p.id = b.parent_id
SET p.optin=b.optin
WHERE p.id = 11 AND b.optin = 1
谢谢。
关于mysql - 使用JOIN更新基于链接表的表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33635965/