gpt4 book ai didi

mysql - 使用 3 个表更新值

转载 作者:行者123 更新时间:2023-11-30 01:09:33 25 4
gpt4 key购买 nike

我已经尝试了两个晚上来解决这个问题,但无法做到。我正在尝试使用三个表(person、person_pet、pet)更新值。宠物的 parent 应该是拥有宠物的人。我试图仅使用 pet.id 和 person_pet.pet_id 来获得一对一匹配。 person_pet 是一个关系表,说明哪个宠物属于哪个人。我能找到的最接近的答案是在这里( Update SQL by joining 3 tables )。

这是我最好的镜头:

UPDATE pet
SET parent =
(SELECT person.id
FROM person, person_pet, pet
WHERE
person_pet.pet_id = pet.id);

请帮我指明正确的方向,谢谢!

以下是我一直在使用的确切表格:

+----+------------+-----------+------+------+--------------+--------+------+
| id | first_name | last_name | age | dead | phone_number | salary | dob |
+----+------------+-----------+------+------+--------------+--------+------+
| 0 | Zed | Shaw | 37 | NULL | NULL | NULL | NULL |
| 1 | Terry | Berry | 42 | NULL | NULL | NULL | NULL |
| 2 | Tyler | Brown | 25 | NULL | NULL | NULL | NULL |
| 3 | Frank | Smith | 100 | NULL | NULL | NULL | NULL |

宠物

+----+----------+------------+------+------+------+--------+
| id | name | breed | age | dead | dob | parent |
+----+----------+------------+------+------+------+--------+
| 0 | Zeds Pet | Unicorn | 1000 | 0 | NULL | NULL |
| 1 | Zeds Pet | Robot | 1 | 0 | NULL | NULL |
| 2 | Murphy | Yellow lab | 6 | 0 | NULL | NULL |
+----+----------+------------+------+------+------+--------+

person_pet

+-----------+--------+--------------+
| person_id | pet_id | purchased_on |
+-----------+--------+--------------+
| 0 | 0 | 0000-00-00 |
| 0 | 1 | 0000-00-00 |
| 2 | 2 | 0000-00-00 |
| 4 | 3 | 0000-00-00 |
| 5 | 4 | 0000-00-00 |
| 6 | 5 | 0000-00-00 |
| 7 | 6 | 0000-00-00 |
| 5 | 7 | 0000-00-00 |
+-----------+--------+--------------+

最佳答案

假设 person_pet 有两列:pet_id 和 person_id 以下查询适合您吗?

UPDATE pet
SET parent = person_pet.person_id
FROM pet
INNER JOIN person_pet ON person_pet.pet_id = pet.id
WHERE COALESCE(pet.parent,-1) <> COALESCE(person_pet.person_id,-1)

不确定您是否需要了解这种情况下的人员表。

关于mysql - 使用 3 个表更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19555596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com