[SQL]将子查询作为查询条件
生活随笔
收集整理的這篇文章主要介紹了
[SQL]将子查询作为查询条件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
描述
如果需要按照某一些特定條件篩選數據,一般用where或者是group by就可以解決。但是有一類問題比較繞,需要輸出的是符合條件的所有的某一個值對應的所有的數據。
如例:設每個學生可能會有很多門課程,輸出所有課程分數加起來大于500的學生的所有課程。這個問題和一般的問題不太一樣,一般的按條件篩選都是要求找到所有課程分數加起來大于500的學生。所以,在這里需要用group這個功能生成一個子查詢,將子查詢作為一個條件參數而不是結果。
案例
??途W上的一個例子很不錯:
這個問題的一個典型解決方式就是用子查詢作為篩選參數
select * from order_info where user_id in ( select user_id from order_info WHERE status='completed' and date>'2025-10-15' and product_name in ('C++','Python','Java') GROUP BY user_id HAVING count(*)>1) status='completed' and date>'2025-10-15' and product_name in ('C++','Python','Java') ORDER BY id;為什么篩選條件要寫兩遍?因為在子查詢中篩選出來的user_id符合篩選要求,并不代表user_id所對應的內容也符合要求。比如,user_id對應的課程完成情況就有可能是未完成。所以需要在子查詢篩選完后,再篩選一次。
總結
以上是生活随笔為你收集整理的[SQL]将子查询作为查询条件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: little endian c语言,c语
- 下一篇: 数据分析师要求mysql的_做数据分析师