2016-07-04 5 views
-3

私は2つのテーブルを有する:譲渡する列は

table_Names

ID、名前

11、ハリー

12、ウェイン

13、ラヒーム

14、Manuel

15、トーマス

table_relationship

A_ID、B_ID

11、14

12、15

私がABの関係を持っている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 
+0

フォーマットが正しくありません。申し訳ありませんが、誰でも改善してください! – Flying

+1

あなたの質問を編集する方法についてお気軽にお気軽にご連絡ください:http://stackoverflow.com/editing-help – mhawke

+0

ようこそ。 [よくある質問と回答](http://stackoverflow.com/help/on-topic)[よくある質問とその回答](http://stackoverflow.com/help/on-topic) )[完全な質問](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) [最小限の完全かつ検証可能な例の作成方法] (http://stackoverflow.com/help/mcve) SOは**無料のコーディング、コード変換、チュートリアル、図書館検索サービスではありません**あなた自身の問題を解決するために何らかの努力をしたことを示す必要があります。 – RiggsFolly

答えて

1

あなたはtable_Namesに再び参加し、その後、関係テーブルにtable_Namesを接合することで、この問題を解決することができます。これらのレコードはINNER JOINにより濾別しますので、table_relationshipに表示されないレコードを更新するおそれがないことを

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 

注意。

+0

ありがとう、これを完全に理解することはできませんでしたが、ダブル参加がトリックでした! – Flying

関連する問題