使用基于唯一ID列的两个现有表创建新表

时间:2013-10-29 11:29:14

标签: mysql join

这可能是愚蠢的,但我试图通过连接两个既有product_ID为主要且唯一的现有表来在我的数据库中创建一个新表。

我尝试了这个但是没有用

CREATE TABLE new_table_name
SELECT *
FROM table1 t1, table2 t2, WHERE t1.product_id = t2.product_id;

CREATE TABLE new_table_name
SELECT *
FROM table1 AS t1, table2 AS t2, WHERE t1.product_id = t2.product_id;

3 个答案:

答案 0 :(得分:2)

我猜语法错了也许你应该试试这个

CREATE TABLE new_table
AS (SELECT * FROM old_table);


CREATE TABLE NEW_TABLE
AS
  (SELECT *
FROM table1 AS t1, table2 AS t2, WHERE t1.product_id = t2.product_id);

答案 1 :(得分:1)

确保您拥有AS并且新表中的列名称都是唯一的列名称 - 示例:

CREATE TABLE T1 (ID INT, TXT VARCHAR(20));
CREATE TABLE T2 (ID INT);
INSERT INTO T1 VALUES (1, '1111');
INSERT INTO T1 VALUES (3, '3333');
INSERT INTO T2 VALUES (3);
CREATE TABLE T3 AS (SELECT A.ID, A.TXT, B.ID AS "NewNameForID" FROM T1 A, T2 B WHERE A.ID=B.ID)

请注意,使用AS重命名了B.ID,以使结果表中的所有列名都是唯一的。

结果表T3将是一个包含列的表:ID,TXT,NewNameForID和1行。

请适应你的桌子。

答案 2 :(得分:0)

使用CREATE TABLE ... SELECT语法。

请参阅此http://dev.mysql.com/doc/refman/5.0/en/create-table-select.html