从现有的表语句调试MySQL CREATE TABLE?

时间:2014-04-08 05:39:46

标签: mysql sql

为什么这会给我一个错误?

我没有在网上找到任何将CREATE TABLE与带有WHERE的SELECT语句相结合的优秀示例代码。

CREATE TABLE tmp_year (source CHAR(3),
                       target CHAR(3),
                       val FLOAT,
                       PRIMARY KEY (source, target))
(SELECT source,
        target,
        val
 WHERE date>='2001-01-01'
 AND date<='2001-12-12')
FROM db;

错误消息:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE date>='2001-01-01' AND date<='2001-12-12') FROM db' at line 1

2 个答案:

答案 0 :(得分:2)

试试我的朋友:

CREATE TABLE tmp_year AS
SELECT * FROM YOURTABLE
WHERE date>='2001-01-01'
AND date<='2001-12-12';

ALTER TABLE tmp_year ADD PRIMARY KEY(source, target);

以下是 SQL Fiddle

中的示例

答案 1 :(得分:1)

SQL希望FROM能够紧跟SELECT子句的值,并且在像WHERE这样的条件之前。