SELECT *
FROM t1
JOIN t2
ON t1.id1 = t2.id2
会在MySQL上产生这些表的JOIN。如何将结果存储在第三个表中而不必逐列定义。CREATE TABLE LIKE a JOIN
我试过这个来创建第三个表,但它不起作用。
CREATE TABLE t3 LIKE
(
SELECT *
FROM t1
JOIN t2
ON t1.id1 = t2.id2
) a
SELECT *
FROM t1
JOIN t2
ON t1.id1 = t2.id2
会在MySQL上产生这些表的JOIN。如何将结果存储在第三个表中而不必逐列定义。CREATE TABLE LIKE a JOIN
我试过这个来创建第三个表,但它不起作用。
CREATE TABLE t3 LIKE
(
SELECT *
FROM t1
JOIN t2
ON t1.id1 = t2.id2
) a
如果你想在新表中包含您的SELECT
结果:
CREATE TABLE t3 SELECT * FROM t1 JOIN t2 ON t1.id1 = t2.id2
或者,如果你只是希望它立足于加入的模式:
CREATE TABLE t3 SELECT * FROM t1 JOIN t2 ON t1.id1 = t2.id2 WHERE FALSE
需要注意的是,如果两个表包含重复的列名,mysql将会抛出一个错误。 – 2012-07-06 22:42:28
@MattGlover:好点。很明显,在这种情况下,人们必须对这些列进行别名。 – eggyal 2012-07-06 22:43:10
你想让新表保存'SELECT'的结果,还是只希望它的模式基于那个结果? – eggyal 2012-07-06 22:38:50