现在我正在研究一些初学者SQL的东西,而且我遇到了一个练习题的问题:
列出所有员工的SSN,姓名(第一个和最后一个)和薪水 是经理。
提示:使用嵌套查询来获得答案。
经理是指拥有与SSN相同的SUPERSSN的人。上面的问题对我来说似乎很直接,但是当我运行我的SQL代码时:
SELECT SSN, FName, LName, Salary
FROM employee
WHERE SSN = SuperSSN
它返回ZERO行,我不知道为什么。任何帮助是极大的赞赏!感谢。
编辑!:我的错误。 SuperSSN是varChar而SSN是Int。EDIT2:表格如下所示:
SSN BDate Sex Address Salary FName Minit LName DNo SuperSSN
123456789 | 1965-01-09 | M | "731 Fondren, Houston, TX" | 30000 | John B | Smith | 5 | 123456789
答案 0 :(得分:1)
如果您希望保留index.php
类型的SuperSSN
列,可以尝试以下操作:
VARCHAR
否则,只需这样就可以了:
SELECT SSN, FName, LName, Salary
FROM employee
WHERE SSN = (SELECT DISTINCT CAST(SuperSSN AS UNSIGNED) FROM employee WHERE SSN = SSN);
答案 1 :(得分:1)
尝试以下
SELECT SSN, FName, LName, Salary
FROM employee
WHERE SSN = (SELECT SuperSSN FROM employee WHERE SSN = SSN)