这可能是愚蠢的,但我试图通过连接两个既有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;
答案 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