我创建了以下简单的表格来说明我们要解决的问题:
CREATE TABLE soPost
(
id INT AUTO_INCREMENT,
code INT,
value VARCHAR(8),
PRIMARY KEY(id)
);
该表已填充以下insert语句:
INSERT INTO soPost(code, value)
VALUES (101, 'XYZ'), (101, 'ABC'), (101, 'DEF'), (101, 'GHI'),
(201, 'XYZ'), (201, 'ABC'), (201, 'JKL'),
(301, 'XYZ'), (301, 'DEF'), (301, 'MNO'),
(401, 'XYZ'), (401, 'PRQ'),
(501, 'STU'), (501, 'VWZ');
结果
SELECT * FROM soPost;
是:
+----+------+-------+
| id | code | value |
+----+------+-------+
| 1 | 101 | XYZ |
| 2 | 101 | ABC |
| 3 | 101 | DEF |
| 4 | 101 | GHI |
| 5 | 201 | XYZ |
| 6 | 201 | ABC |
| 7 | 201 | JKL |
| 8 | 301 | XYZ |
| 9 | 301 | DEF |
| 10 | 301 | MNO |
| 11 | 401 | XYZ |
| 12 | 401 | PRQ |
| 13 | 501 | STU |
| 14 | 501 | VWZ |
+----+------+-------+
我们需要选择代码,其中至少有一个值是XYZ,但没有一个值是ABC或DEF。显然,满足此条件的唯一值是代码401。
请建议使用SQL查询来实现此结果。