Sql 查询应返回n个结果时返回0行
我正在使用Sql 查询应返回n个结果时返回0行,sql,postgresql,Sql,Postgresql,我正在使用postgresql学习SQL 我有一个非常简单的查询,据我所知,应该返回3个结果 这是一张表(由于我分析的那张表完全搞糟了,所以简化了): 因此,通过调查,我知道有三个名字应该是经理,因为他们出现在super_ssn列中 当我这样做时: SELECT fname, lname FROM employee WHERE super_ssn = ssn; 我明白了 fname | lname -------+------- (0 rows) 为什么呢 列ssn和列super\u s
postgresql
学习SQL
我有一个非常简单的查询,据我所知,应该返回3个结果
这是一张表(由于我分析的那张表完全搞糟了,所以简化了):
因此,通过调查,我知道有三个名字应该是经理,因为他们出现在super_ssn列中
当我这样做时:
SELECT fname, lname
FROM employee
WHERE super_ssn = ssn;
我明白了
fname | lname
-------+-------
(0 rows)
为什么呢
列ssn
和列super\u ssn
都是字符类型
正如我所说,我正在学习它,所以如果可以的话,对你的答案稍微深入一点。请,谢谢。没有行,其中:
WHERE super_ssn = ssn;
WHERE
子句只考虑同一行中的值。因此,查询不返回任何行
我怀疑您希望在
中或存在
:
SELECT e.fname, e.lname
FROM employee e
WHERE EXISTS (SELECT 1
FROM employee e2
WHERE e2.super_ssn = e.ssn
);
其中没有行:
WHERE super_ssn = ssn;
WHERE
子句只考虑同一行中的值。因此,查询不返回任何行
我怀疑您希望在
中或存在
:
SELECT e.fname, e.lname
FROM employee e
WHERE EXISTS (SELECT 1
FROM employee e2
WHERE e2.super_ssn = e.ssn
);
关于
语句的那一部分澄清了很多!我已经阅读了很多次文档,但是如果没有持续的努力,学习是一件非常痛苦的事情。非常感谢。关于的那一部分说明了很多!我已经阅读了很多次文档,但是如果没有持续的努力,学习是一件非常痛苦的事情。非常感谢。