我想了解在處理SQL時,嵌套或嵌套子查詢如何在Oracle中工作。因此,讓我們舉個例子,我有兩張桌子,一張是我拿着所有學生的信息,另一張是我拿着每個學生收到的所有成績。現在我試圖找到所有從成績表中獲得至少一個'A'成績的學生。我可以做一個簡單的連接並獲得輸出。但問題是,如果學生兩次獲得'A'級,他的身份證顯示兩次。現在我知道我可以用DISTINCT這個詞來解決我的問題。但我想使用嵌套查詢來做到這一點,所以這就是我輸入 - > 從學生身份選擇ID,其中id在(從成績選擇ID); 現在這個查詢返回一個沒有重複的輸出。我試圖讓我的頭在此以及如何嵌套查詢詳細工作。 「在哪裏」部分也有什麼作用?真的很困惑。SQL中子查詢的工作
0
A
回答
0
雖然distinct
是不好的東西,但它經常被誤用 - 而且我認爲你的例子是一個更好的方法。
在這種情況下,我認爲你最好的選擇是半連接。下面是一個粗略的例子:
select s.*
from students s
where exists (
select null
from grades g
where
s.student_id = g.student_id and
g.grade = 'A'
)
甲骨文確實執行子查詢到一個半連接在後臺,當它是有意義的一個相當不錯的工作,但其他DBMS肯定從這個結構中受益。
+0
是的。非常感謝你的回覆!我現在明白了:) –
0
實際上,它的工作方式是連接和獨特 - 但Oracle很聰明,它可以高效地完成工作。它會做你會做的事情:它從第一個表中獲取第一個student_id,並嘗試將它與第二個表中的行進行匹配。但是,由於您不需要整個連接,因此一旦找到匹配就會停止 - 然後它將轉到第一個表中的第二行。
我假設你的意思是子查詢是select id from grades where grade = 'A'
,對不對?
+0
是的。非常感謝你的回覆!我現在明白了:) –
相關問題
- 1. 的Sql子查詢不工作
- 2. 的Sql父子查詢不工作
- 3. SQL子查詢的錯誤不工作
- 4. 爲什麼工作的SQL查詢不能用作子查詢?
- 5. PHP和SQL:子查詢不工作
- 6. 子查詢中的T-sql子查詢
- 7. SQL查詢中子查詢
- 8. 計數與SQL子查詢中從子句不工作
- 9. SQL Server 2008子查詢出錯。仍然工作在主查詢
- 10. SQL查詢不能在PHP中工作,但在SQL中工作
- 11. SQL查詢工作在SQL Server中,無法在Excel(Microsoft查詢)
- 12. 解釋工作中的子查詢MySQL
- 13. android sqlite中的子查詢,不工作
- 14. Dyanamic SQL查詢不工作
- 15. SQL數查詢不工作
- 16. SQL SELECT查詢不工作
- 17. SQL查詢如何工作?
- 18. SQL查詢工作有時
- 19. SQL查詢不工作
- 20. SQL LIKE查詢不工作
- 21. SQL查詢不工作
- 22. SQL查詢不想工作
- 23. SQL查詢,子查詢減子查詢?
- 24. Vanilla SQL與相關子查詢在T-SQL中工作,在PL/SQL中失敗
- 25. Oracle SQL中的子查詢
- 26. MySQL中的SQL子查詢
- 27. Sybase SQL中的子查詢
- 28. 在SQL中的子查詢
- 29. C中的SQL子查詢#
- 30. 在Access中查詢「工作周」SQL
(1)我刪除了不合適的數據庫標籤。 (2)您應該編輯問題並提供樣本數據和期望的結果。 –