如何解决比较两个相同的表如何在 sql 中工作?
SQL 如何比较两个相同的表非常有趣。例如,这是一个架构:
CREATE TABLE Sailors (
sid INTEGER,sname CHAR(20),rating INTEGER,age REAL,PRIMARY KEY (sid));
INSERT INTO Sailors VALUES
(1,'Hu',10,22),(2,'Gat',11,39),(3,'Ej',1,27),(4,'Pon',5,19);
这是我的查询:
SELECT *
FROM Sailors S
WHERE NOT EXISTS
(SELECT *
FROM Sailors S2
WHERE S.age > S2.age);
它返回最年轻的水手。你能一步一步地向我解释它是如何工作的吗?
解决方法
对于每个水手,它执行 subquery 以检查是否有任何年轻的水手(其中 S.age > S2.age)。如果有,它们会被过滤掉(不存在的地方)。
这可以通过找到最小年龄然后选择所有水手来更简单、更快捷地完成。
select *
from sailors
where age = (
select min(age) from sailors
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。