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
             );

关于
语句的那一部分澄清了很多!我已经阅读了很多次文档,但是如果没有持续的努力,学习是一件非常痛苦的事情。非常感谢。关于
的那一部分说明了很多!我已经阅读了很多次文档,但是如果没有持续的努力,学习是一件非常痛苦的事情。非常感谢。