MySQL Minus查询语法

时间:2014-10-30 20:01:05

标签: mysql

我正在处理一个查询,该查询将从数据库的一个部分提取信息,但删除部分结果。这是数据库:

CREATE TABLE elements 
(
   atomicNumber INT UNSIGNED NOT NULL PRIMARY KEY,
   symbol VARCHAR(3) NOT NULL,
   elementName VARCHAR(25) NOT NULL,
);    

INSERT INTO elements VALUES (1, 'H', 'Hydrogen');
INSERT INTO elements VALUES (2, 'He', 'Helium');
INSERT INTO elements VALUES (3, 'Li', 'Lithium'); 
INSERT INTO elements VALUES (4, 'Be', 'Beryllium');
INSERT INTO elements VALUES (5, 'B', 'Boron');
INSERT INTO elements VALUES (6, 'C', 'Carbon');
INSERT INTO elements VALUES (7, 'N', 'Nitrogen');
INSERT INTO elements VALUES (8, 'O', 'Oxygen');
INSERT INTO elements VALUES (9, 'F', 'Fluorine');
INSERT INTO elements VALUES (10, 'Ne', 'Neon');

我想返回除atomicNumber 1以外的数据库中的所有记录。这是我使用的查询:

Select atomicNumber, symbol, elementName From elements Minus select atomicNumber, symbol, elementName Where atomicNumber = 1;

当我执行该查询时,我收到此错误:

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 'Minus....

查询语法中的错误是什么?我在最近几个小时环顾四周,但无法弄清楚我做错了什么。

2 个答案:

答案 0 :(得分:1)

要排除不同的元素,您可以使用not-equals比较:

SELECT * FROM elements WHERE atomicNumber != 1;

如果您要排除许多元素,则可以使用NOT IN(但可能效率不高):

SELECT * FROM elements WHERE atomicNumber NOT IN (2,5,10);

答案 1 :(得分:0)

从?在第二个查询

Select atomicNumber, symbol, elementName From elements Minus select atomicNumber, symbol, elementName Where atomicNumber = 1;

Select atomicNumber, symbol, elementName FROM elements Where atomicNumber = 1;

我想..

我的意思是,你错过了一个From语句,只需检查你的代码。