在具有关系的表之间传输列

时间:2016-07-04 11:51:09

标签: mysql

我有两张桌子:

table_Names

id,name

11,哈利

12,韦恩

13,拉希姆

14,曼努埃尔

15,托马斯

table_relationship

A_id,B_id

11,14

<12> 15

我需要具有A-B关系的ID的所有名称才能更新。

所以,我希望在SQL更新之后table_Names看起来像这样;

11,曼努埃尔

12,托马斯

13,拉希姆

14,曼努埃尔

15,托马斯

mySQL语句应该如何?

我试过了:

UPDATE table_Names
INNER JOIN table_relationship
ON table_Names.id = A.id
SET table_Names=table_Names
WHERE table_relationship.Aid=table_names.id

1 个答案:

答案 0 :(得分:1)

您可以通过将table_Names加入关系表,然后再次加入table_Names来解决此问题。

UPDATE table_Names AS t1
INNER JOIN table_relationship AS t2
    ON t1.id = t2.A_id
INNER JOIN table_Names t3
    ON t2.B_id = t3.id
SET t1.name = t3.name

请注意,不必担心会更新table_relationship中显示的记录,因为这些记录会被INNER JOIN过滤掉。