Fatal Error: Unexpected BLOG

主に自分用の備忘録として

【MySQL】UPDATE文でINNER JOINする

忘れるのでメモ。

    UPDATE `tableA` 
    INNER JOIN `tableB` 
        ON `tableA`.`column1` = `tableB`.`column1`
    SET 
        `tableA`.`column2` = `tableB`.`column3`
    WHERE 
        `tableA`.`column1` = `tableB`.`column1`

カラム名がtableAとtableBで同一のものがある場合、以下のエラーが出ます。

    Column '[column_name]' in field list is ambiguous

ambiguousは「曖昧」とか「紛らわしい」とかいう意味だそうで、「どっちのテーブルのカラムか分からないよ~。」というエラーですね。

カラム毎にちゃんとテーブル名を指定してあげれば大丈夫。AS句で名前つけておくと楽かもしれませんね。

    UPDATE `tableA` AS TBL_A
    INNER JOIN `tableB` AS TBL_B
        ON TBL_A.`column1` = TBL_B.`column1`
    SET 
        TBL_A.`column2` = TBL_B.`column3`
    WHERE 
        TBL_A.`column1` = TBL_B.`column1`

以下のサイトを参考にさせて頂きました。

おしまい。