我正在处理一个查询,该查询将从数据库的一个部分提取信息,但删除部分结果。这是数据库:
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....
查询语法中的错误是什么?我在最近几个小时环顾四周,但无法弄清楚我做错了什么。
答案 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语句,只需检查你的代码。