2016-07-04 3 views
-3

У меня есть две таблицы:перенося столбцы между таблицами, которые имеют отношения

table_Names

идентификатор, имя

11, Гарри

12, Wayne

13, Рахим

14, Мануэль

15, Томас

table_relationship

a_id, B_id

11, 14

12, 15

мне нужны все имена для идентификаторов, которые имеют отношение AB к Обновить.

Итак, я хочу, чтобы table_Names выглядели так после SQL-обновления;

11, Manuel

12, Томас

13, Рахим

14, Manuel

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 
+0

Извините за плохое форматирование, пожалуйста, не стесняйтесь улучшать это, кто угодно! – Flying

+1

Пожалуйста, не стесняйтесь читать, как изменить свой вопрос: http://stackoverflow.com/editing-help – mhawke

+0

Добро пожаловать в SO. Пожалуйста, прочитайте [Какие темы я могу задать] (http://stackoverflow.com/help/on-topic) и [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to -ask) И [идеальный вопрос] (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) И [Как создать минимальный, полный и проверяемый пример] (http://stackoverflow.com/help/mcve) SO ** не является бесплатным кодированием или преобразованием кода или учебным пособием или службой поиска библиотек ** Вы также должны показать, что приложили определенные усилия для решения своей проблемы , – RiggsFolly

ответ

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.

+0

Спасибо большое, не мог полностью понять это, но двойное соединение сделало трюк! – Flying

Смежные вопросы