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. 如何處理子查詢返回多個值
- 6. 子查詢返回多個值如何處理呢
- 7. 處理MySQL的子查詢返回多行
- 8. 如何寫多行父查詢單行返回子查詢子查詢
- 9. 如何處理這個錯誤1242(21000):子查詢返回多於一行
- 10. SQL查詢返回 「子查詢返回多個1行」
- 11. 單行子查詢返回多個行
- 12. SQL單行子查詢返回多行?
- 13. 單行子查詢返回多個行
- 14. 如何處理錯誤子查詢返回多個值1這個例子?
- 15. 單行子查詢返回多行 - 如何查找重複?
- 16. 在處理多個返回值的子查詢
- 17. MySQL子查詢返回多於1行。如何查找子查詢?
- 18. 子查詢返回多個行
- 19. SQL更新,子查詢返回多行
- 20. 子查詢返回多個1行
- 21. MYSQL:LIKE(子查詢)返回多行
- 22. 子查詢返回多個1行
- 23. 1242 - 子查詢返回多個1行
- 24. SQL子查詢返回多於一行
- 25. 子查詢返回多於1行?
- 26. java.sql.SQLException:子查詢返回多於一行
- 27. 子查詢返回多個行
- 28. mysql:子查詢返回多於一行
- 29. PostgreSQL中子查詢返回的多行
- 30. 子查詢返回多個1行
請我們是人,我們想要的細節。 – fedorqui 2013-03-15 19:29:36
顯然你的一個子查詢返回多個結果。如果我們知道你的桌子是什麼樣的,那麼也許我們可以提供幫助。另外,你有沒有想過使用'JOIN'呢? – 2013-03-15 19:33:55