我试图制定一个查询,将表中一列的内容复制到另一张表中,并将其与索引值进行匹配。
两个表都将具有相同的索引值。
示例:
表1
+-----------------------------------+------------+
| index | val |
+-----------------------------------+------------+
| 11 | AA |
| 23 | AA |
| 34 | BB |
+-----------------------------------+------------+
表2
+-----------------------------------+
| index |
+-----------------------------------+
| 34 |
| 11 |
| 23 |
+-----------------------------------+
运行查询后,使表2反映:
+-----------------------------------+------------+
| index | val |
+-----------------------------------+------------+
| 34 | BB |
| 11 | AA |
| 23 | AA |
+-----------------------------------+------------+
我将不胜感激。预先感谢。
答案 0 :(得分:0)
我不太了解您为什么要这样做,但是看起来可能像这样:
Alter table BTABLE add val varchar(10);
update BTABLE bta set val = (select ata.val from ATABLE ata where ata.index = bta.index);
唯一的是,这样您将拥有2个完全相同的表...
答案 1 :(得分:0)
执行您描述的最简单的方法是删除Table2
并将其重新创建为Table1
的副本:
DROP TABLE Table2;
CREATE TABLE Table2 AS
SELECT * FROM Table1;
请参见demo。
结果(对于Table2
):
> index | val
> ----: | :--
> 11 | AA
> 23 | AA
> 34 | BB
答案 2 :(得分:0)
就像Irina Avram告诉您的那样,为什么要复制数据库中已经存在的列。 您可以使用JOIN和SELECT语句获得所需的内容,而无需在数据库中添加更多数据。
SELECT Table2.index, Table1.val FROM Table2 JOIN Table1 ON Table2.index = Table1.index