SELECT requestID
FROM request
WHERE userId = (
SELECT userID
FROM department
WHERE desig = 'E'
AND dept = (
SELECT dept
FROM department
WHERE userId = it18
AND desig = 'FM'
)
);
3
A
回答
11
这将是更加清晰编写使用JOIN
此查询:
select distinct r.requestID
from
request r
join department d
on d.userId = r.userID
and desig = 'E'
join department d2
on d2.dept = d.dept
and d2.desig = 'FM'
and d2.userId = 'it18'
或者,你可以简单地更换=
与IN
:
SELECT requestID
FROM request
WHERE userId IN (
SELECT userID
FROM department
WHERE desig = 'E'
AND dept IN (
SELECT dept
FROM department
WHERE userId = it18
AND desig = 'FM'
)
);
他们应该返回相同的结果,但尝试以查看性能是否有差异。
5
有对付它的方法有两种:
选项1:更改为WHERE ... IN (SELECT ...)
,像这样:
SELECT requestID
FROM request
WHERE userId IN (
SELECT userID
FROM department
WHERE desig = 'E'
AND dept IN (
SELECT dept
FROM department
WHERE userId = it18
AND desig = 'FM'
)
);
选项2:只强制一个结果通过使用聚合函数一样MAX()
,像这:
SELECT requestID
FROM request
WHERE userId = (
SELECT MAX(userID)
FROM department
WHERE desig = 'E'
AND dept = (
SELECT MAX(dept)
FROM department
WHERE userId = it18
AND desig = 'FM'
)
);
+0
@所有的感谢..解决了! :) – user2175325 2013-03-15 20:32:48
相关问题
- 1. 如何处理返回多个行的子查询
- 2. 如何处理,如果子查询返回多个值
- 3. 如何处理返回多个值的子查询
- 4. 子查询返回多个值如何处理呢
- 5. 处理MySQL的子查询返回多行
- 6. 如何写多行父查询单行返回子查询子查询
- 7. SQL查询返回 “子查询返回多个1行”
- 8. SQL单行子查询返回多行?
- 9. 如何处理错误子查询返回多个值1这个例子?
- 10. 单行子查询返回多行 - 如何查找重复?
- 11. 在处理多个返回值的子查询
- 12. MySQL子查询返回多于1行。如何查找子查询?
- 13. Mysql子查询返回多行
- 14. PostgreSQL中子查询返回的多行
- 15. 子查询返回多个1行
- 16. MySQL子查询返回多于一行
- 17. 子查询返回多个1行
- 18. SQL子查询返回多于一行
- 19. mysql:子查询返回多于一行
- 20. 子查询返回多个行
- 21. MySQL:子查询返回多个行
- 22. java.sql.SQLException:子查询返回多于一行
- 23. 子查询返回的mysql多行
- 24. 子查询返回多于一行
- 25. 子查询返回多于1行?
- 26. Django的子查询问题“子查询返回多个1行”
- 27. “子查询返回多于1行”,没有子查询MySQL?
- 28. 如何处理返回零行并返回十进制值的linq查询?
- 29. 查询返回多行?
- 30. 子查询返回多个值。当子查询如下
请我们是人,我们想要的细节。 – fedorqui 2013-03-15 19:29:36
显然你的一个子查询返回多个结果。如果我们知道你的桌子是什么样的,那么也许我们可以提供帮助。另外,你有没有想过使用'JOIN'呢? – 2013-03-15 19:33:55