日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql子查询存到另一张表_MySQL数据库(11)----使用子查询实现多表查询

發布時間:2025/5/22 数据库 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql子查询存到另一张表_MySQL数据库(11)----使用子查询实现多表查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

子查詢指的是用括號括起來,并嵌入另一條語句里的那條 SELECT 語句。下面有一個示例,它實現的是找出與考試類別('T')相對應的所有考試事件行的 ID,然后利用它們來查找那些考試的成績:

SELECT * FROM score WHERE event_id IN ( SELECT event_id FROM grade_event WHERE category = 'T' ) ;

1.1 帶關系比較運算符的子查詢

運算符 =、<>、>、>=、< 和 <= 可用來對值之間的關系進行比較。當與標量子查詢配合使用時,它們會將外層查詢里所有與子查詢的返回值有著特定關系的行找出來。例如:

SELECT * FROM score WHERE event_id=( SELECT event_id FROM grade_event WHERE event_id FROM grade_event WHERE date='2016-07-27' AND category = 'Q' );

如果遇到問題可以通過在 WHERE 子句里使用某個聚合函數來解決,那么可以考慮用帶關系比較運算符的標量子查詢。例如,想要知道在 student 表里的那個學生出生最早,則可能會試著編寫出下面這條語句:

SELECT * FROM student WHERE birth= ( SELECT MIN( birth ) FROM student );

可是這個辦法是行不通的,因為不能在 WHERE 子句里使用聚合函數。(WHERE 子句的用途是確定應該選取哪些行,但 MIN() 的值只有在選取行之后才能確定下來。) 不過,可以使用像下面這樣的子查詢來產生一個最小的出生日期:

SELECT * FROM student WHERE birth = ( SELECT MIN(birth) FROM student );

也可以使用其他聚合函數來解決類似問題。下面的這條語句使用了一個子查詢來選取某次考試中高于平均分的分數:

SELECT * FROM score WHERE event_id=5 AND score > ( SELECT AVG(score) FROM score WHERE event_id = 5 );

如果子查詢返回的是一個行,那么可以用一個構造器來實現一組值(即元組)與子查詢結果的比較。下面這條語句會返回多行與 'Lily' 出生在同一個 state ?和 city 的學生的名字:

mysql> SELECT name,city,state FROMstudent-> WHERE (city,state)=

-> (SELECT city ,state FROM student WHERE name = 'Lily');

總結

以上是生活随笔為你收集整理的mysql子查询存到另一张表_MySQL数据库(11)----使用子查询实现多表查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。