2016-04-13 45 views
0

table2(所有者)のidでtable1(video_games)のid_ownerフィールドにデータを入力しようとしています。 テーブル1のフィールドpossessorには、テーブル2のフィールドNameと同じデータが含まれています。 私はPhpMyAdminで作業しています。PhpMyAdmin- 2つのテーブル間でデータを共有する

UPDATE t 
    SET t.`id_owner` = o.`id` 
    FROM `video_games` AS t 
     INNER JOIN 
     `owner` AS o 
     ON t.possessor = o.Name 

を追加しました引用符:別名

UPDATE 
    `video_games`, 
    `owner` 
SET 
    `video_games`.`id_owner` = `owner`.`id`, 

WHERE 
    `video_games`.`possessor` = `owner`.`Name`; 

なし

UPDATE t 
    SET t.`id_owner` = o.`id` 
    FROM `video_games` AS t 
     INNER JOIN 
     `owner` AS o 
     ON t.`possessor` = o.`Name` 


UPDATE `video_games` 
SET `id_owner` = `i`.`id`, 
FROM (
    SELECT `id` 
    FROM `owner`) `i` 
WHERE 
    `i`.`Name` = `video_games`.`possessor` 

それでも同じMySQLで動けなくなるのi「はすでにそれはStackOverflowの下に発見された試みたVEの何

エラー:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `video_games`.`possessor` = `owner`.`Name``' at line 7

+0

? –

答えて

0

内部SELECTで名前を選択していません。

UPDATE video_games 
SET id_owner = i.id 
FROM (
    SELECT id, Name 
    FROM owner) i 
WHERE i.Name = video_games.possessor 
0

私は考えましたが、同じエラーメッセージが表示されました。

さらなる研究

がうまく働いた命題 https://dev.mysql.com/doc/refman/5.5/en/update.htmlに私を導く最初の構文ではなく、MySQLの構文よりも、Microsoft SQL Serverのようになっていることを

UPDATE video_games,owner 
SET video_game.id_owner=owner.id 
WHERE video_games.id_possessor=owner.id; 
関連する問題