PhpMyAdmin- 在两个表之间共享数据

Posted

技术标签:

【中文标题】PhpMyAdmin- 在两个表之间共享数据【英文标题】:PhpMyAdmin- Sharing data between two tables 【发布时间】:2016-04-13 15:44:07 【问题描述】:

我正在尝试使用来自 table2(所有者)的 id 填充 table1(视频游戏)的字段 id_owner。 table1 的字段possessor 包含与table2 的字段Name 相同的数据。 我正在使用 phpMyAdmin。

我已经尝试过在 *** 下找到的内容:

UPDATE  t 
   SET t.`id_owner` = o.`id`
  FROM `video_games` AS t
         INNER JOIN 
       `owner` AS o 
         ON t.possessor = o.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`

没有别名

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

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

仍然遇到同样的 mysql 错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在“WHERE”附近使用的正确语法 `video_games`.`possessor` = `owner`.`Name`' 在第 7 行

【问题讨论】:

第一个语法看起来像 Microsoft SQL Server,而不是 MySQL 语法? 【参考方案1】:

您没有在内部 SELECT 中选择名称。应该是这样的:

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

【讨论】:

【参考方案2】:

我尝试了您的想法,但结果是相同的错误消息。

进一步的研究将我带到https://dev.mysql.com/doc/refman/5.5/en/update.html 哪个提议很好用

UPDATE video_games,owner 
SET video_game.id_owner=owner.id
WHERE video_games.id_possessor=owner.id;

【讨论】:

以上是关于PhpMyAdmin- 在两个表之间共享数据的主要内容,如果未能解决你的问题,请参考以下文章

在 2 种不同类型的数据库之间共享 1 个表

在 Spark 中,是不是可以在两个 executor 之间共享数据?

在两个表之间共享自增主键

SQL Server 中是不是有一种方法可以显示两个具有相同布局并共享一些公共数据的表之间的字段差异

显示一个表中的条目数,对于 SQL 中两个表共享的键,同时还包括在另一个表中没有位置的条目

如何使用 PHPMyAdmin 在两个表之间创建关系?