奇怪了,我试了怎么不行啊?我用的是mysql-3.23.56-win版。 select idx from staff union select idx from staffbak 报的是[drp] ERROR 1064: You have an error in your SQL syntax near 'union' at line 2错误!
6.4.1.2 UNION 句法SELECT ... UNION [ALL] SELECT ... [UNION SELECT ...]UNION 在 MySQL 4.0.0 中被实现。 UNION 用于将多个 SELECT 语句的结果联合到一个结果集中。 在 SELECT 中的 select_expression 部分列出的列必须具有同样的类型。第一个 SELECT 查询中使用的列名将作为结果集的列名返回。 SELECT 命令是一个普通的选择命令,但是有下列的限制: 只有最后一个 SELECT 命令可以有 INTO OUTFILE。 如果你不为 UNION 使用关键词 ALL,所有返回的记录行将是唯一的,就好像你为整个返回集使用了一个 DISTINCT。如果你指定了 ALL,那么你将得到从所有使用的 SELECT 语句中返回的所有匹配记录行。 如果你希望对整个 UNION 结果使用一个 ORDER BY,你应该使用圆括号: (SELECT a FROM table_name WHERE a=10 AND B=1 ORDER BY a LIMIT 10) UNION (SELECT a FROM table_name WHERE a=11 AND B=2 ORDER BY a LIMIT 10) ORDER BY a; 建议下载 MySQL 参考手册,
select idx from staff
union
select idx from staffbak
报的是[drp] ERROR 1064: You have an error in your SQL syntax near 'union' at line 2错误!
UNION [ALL]
SELECT ...
[UNION
SELECT ...]UNION 在 MySQL 4.0.0 中被实现。 UNION 用于将多个 SELECT 语句的结果联合到一个结果集中。 在 SELECT 中的 select_expression 部分列出的列必须具有同样的类型。第一个 SELECT 查询中使用的列名将作为结果集的列名返回。 SELECT 命令是一个普通的选择命令,但是有下列的限制: 只有最后一个 SELECT 命令可以有 INTO OUTFILE。
如果你不为 UNION 使用关键词 ALL,所有返回的记录行将是唯一的,就好像你为整个返回集使用了一个 DISTINCT。如果你指定了 ALL,那么你将得到从所有使用的 SELECT 语句中返回的所有匹配记录行。 如果你希望对整个 UNION 结果使用一个 ORDER BY,你应该使用圆括号: (SELECT a FROM table_name WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM table_name WHERE a=11 AND B=2 ORDER BY a LIMIT 10)
ORDER BY a;
建议下载 MySQL 参考手册,