1

可能这很愚蠢,但我试图通过加入两个现有的表来在我的数据库中创建一个新表,这两个表都将 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;
4

3 回答 3

3

我猜语法错误可能是你应该试试这个

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);
于 2013-10-29T11:38:29.257 回答
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)

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

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

请适应你的桌子。

于 2013-10-29T11:45:04.053 回答
0

使用 CREATE TABLE ... SELECT 语法。

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

于 2013-10-29T11:34:02.007 回答