sql - “这个子查询最多可以返回一条记录。”
问题描述
每当我尝试执行此代码时,我都会收到“此子查询最多可以返回一条记录”。
SELECT W.FullName AS [Full Name], W.Phone, W.Address, W.Age, J.Salary, J.Job
FROM Jobs J INNER JOIN Workers W ON J.JobID = W.JobID
WHERE J.Salary >15000 AND (SELECT Building FROM Departments WHERE Building Like 'A#')
ORDER BY J.Salary
但是,这似乎有效,但我不明白为什么。
SELECT W.FullName AS [Full Name], W.Phone, W.Address, W.Age, J.Salary, J.Job
FROM Departments, Jobs AS J INNER JOIN Workers AS W ON J.JobID = W.JobID
WHERE J.Salary > 15000 AND Departments.Building Like 'A#'
GROUP BY W.FullName, W.Phone, W.Address, W.Age, J.Salary, J.Job
ORDER BY J.Salary
子查询有什么问题?
解决方案
您可以使用IN:
WHERE
J.Salary > 15000 AND
Departments.Building IN (SELECT Building FROM Departments WHERE Building Like 'A#')
推荐阅读
- python - 无法从列表中匹配和删除项目
- ios - 如何为 UIcollecionview 中的每个部分创建滑动以删除?
- c# - 源类型 System.Object 的 AutoMapperMappingException
- html - django html中的for循环取决于索引(每3次重复)
- api - 在 OpenApi 3.0 swagger 中使用响应参数作为有效负载
- c++ - 一个概念可以定义一个满足自己的表达式吗?
- c# - c#在本地主机上发布到PHP,但不在生产服务器上
- python - 将列表的每个整数乘以 Python 中另一个列表的整数
- java - 为什么当按下 Jbutton 并在 java 中执行其定义的功能时,我无法在我的应用程序中执行任何操作?
- react-native - 在 Web 浏览器和 Expo GO 上运行 react 本机代码有什么区别?