MySQL子查詢


子查詢

在一個 select 語句中,嵌入了另外一個 select 語句, 那么被嵌入的 select 語句稱之為子查詢語句

主查詢

主要查詢的對象,第一條 select 語句

主查詢和子查詢的關系

  • 子查詢是嵌入到主查詢中
  • 子查詢是輔助主查詢的,要么充當條件,要么充當數據源
  • 子查詢是可以獨立存在的語句,是一條完整的 select 語句

子查詢分類

  • 標量子查詢: 子查詢返回的結果是一個數據(一行一列)
  • 列子查詢: 返回的結果是一列(一列多行)
  • 行子查詢: 返回的結果是一行(一行多列)

標量子查詢

  1. 查詢班級學生平均年齡
  2. 查詢大於平均年齡的學生

查詢班級學生的平均身高

select * from students where age > (select avg(age) from students); 

列級子查詢

  • 查詢還有學生在班的所有班級名字
    1. 找出學生表中所有的班級 id
    2. 找出班級表中對應的名字
select name from classes where id in (select cls_id from students); 

行級子查詢

  • 需求: 查找班級年齡最大,身高最高的學生
  • 行元素: 將多個字段合成一個行元素,在行級子查詢中會使用到行元素
select * from students where (height,age) = (select max(height),max(age) from students); 

子查詢中特定關鍵字使用

  • in 范圍
    • 格式: 主查詢 where 條件 in (列子查詢)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM