超碰97资源在线免费观看-国产亚洲一区二区久久-欧美日韩成人字幕一区-激情五月网在线视频-亚洲天堂美女av在线-麻豆视传媒精品av-婷婷激情综合激情五月俺也去-国产精品久久久久久亚洲av站-51精产国品一二三产区区,久久久久久久区二区三区四区久久久,色哟哟视频国产精品,日韩va亚洲va欧美

中山php|最優(yōu)網(wǎng)絡(luò)中山做網(wǎng)站 中山php建站

最優(yōu)良人

2011/08/14 at 01:00

Mysql 子查詢的用法

一,子選擇基本用法
1,子選擇的定義
子迭擇允許把一個(gè)查詢嵌套在另一個(gè)查詢當(dāng)中。比如說(shuō):一個(gè)考試記分項(xiàng)目把考試事件分為考試(T)和測(cè)驗(yàn)(Q)兩種情形。下面這個(gè)查詢就能只找出學(xué)生們的考試成績(jī)
select * from score where event_id in (select event_id from event where type='T');
2,子選擇的用法(3種)
? 用子選擇來(lái)生成一個(gè)參考值
在這種情況下,用內(nèi)層的查詢語(yǔ)句來(lái)檢索出一個(gè)數(shù)據(jù)值,然后把這個(gè)數(shù)據(jù)值用在外層查詢語(yǔ)句的比較操作中。比如說(shuō),如果要查詢表中學(xué)生們?cè)谀骋惶斓臏y(cè)驗(yàn)成績(jī),就應(yīng)該使用一個(gè)內(nèi)層查詢先找到這一天的測(cè)驗(yàn)的事件號(hào),然后在外層查詢語(yǔ)句中用這個(gè)事件號(hào)在成績(jī)表里面找到學(xué)生們的分?jǐn)?shù)記錄。具體語(yǔ)句為:
select * from score where
id=(select event_id from event where date='2002-03-21' and type='Q');
需要注意的是:在應(yīng)用這種內(nèi)層查詢的結(jié)果主要是用來(lái)進(jìn)行比較操作的分法時(shí),內(nèi)層查詢應(yīng)該只有一個(gè)輸出結(jié)果才對(duì)??蠢?,如果想知道哪個(gè)美國(guó)總統(tǒng)的生日最小,構(gòu)造下列查詢
select * from president where birth=min(birth)
這個(gè)查詢是錯(cuò)的!因?yàn)镸ySQL不允許在子句里面使用統(tǒng)計(jì)函數(shù)!min()函數(shù)應(yīng)該有一個(gè)確定的參數(shù)才能工作!所以我們改用子選擇:
select * from president where birht=(select min(birth) from presidnet);
? exists 和 not exists 子選擇
上一種用法是把查間結(jié)果由內(nèi)層傳向外層、本類用法則相反,把外層查詢的結(jié)果傳遞給內(nèi)層??赐獠坎樵兊慕Y(jié)果是否滿足內(nèi)部查間的匹配徑件。這種"由外到內(nèi)"的子迭擇用法非常適合用來(lái)檢索某個(gè)數(shù)據(jù)表在另外一個(gè)數(shù)據(jù)表里面有設(shè)有匹配的記錄

數(shù)據(jù)表t1 數(shù)據(jù)表t2
I1 C1 I2 C2
1
2
3 A

C 2
3
4 C

A
先找兩個(gè)表內(nèi)都存在的數(shù)據(jù)
select i1 from t1 where exists(select * from t2 where t1.i1=t2.i2);
再找t1表內(nèi)存在,t2表內(nèi)不存在的數(shù)據(jù)
select i1 form t1 where not exists(select * from t2 where t1.i1=t2.i2);

需要注意:在這兩種形式的子選擇里,內(nèi)層查詢中的星號(hào)代表的是外層查詢的輸出結(jié)果。內(nèi)層查詢沒(méi)有必要列出有關(guān)數(shù)據(jù)列的名字,田為內(nèi)層查詢關(guān)心的是外層查詢的結(jié)果有多少行。希望大家能夠理解這一點(diǎn)
? in 和not in 子選擇
在這種子選擇里面,內(nèi)層查詢語(yǔ)句應(yīng)該僅僅返回一個(gè)數(shù)據(jù)列,這個(gè)數(shù)據(jù)列里的值將由外層查詢語(yǔ)句中的比較操作來(lái)進(jìn)行求值。還是以上題為例
先找兩個(gè)表內(nèi)都存在的數(shù)據(jù)
select i1 from t1 where i1 in (select i2 from t2);
再找t1表內(nèi)存在,t2表內(nèi)不存在的數(shù)據(jù)
select i1 form t1 where i1 not in (select i2 from t2);
好象這種語(yǔ)句更容易讓人理解,再來(lái)個(gè)例子
比如你想找到所有居住在A和B的學(xué)生。
select * from student where state in('A','B')
二, 把子選擇查詢改寫(xiě)為關(guān)聯(lián)查詢的方法。
1,匹配型子選擇查詢的改寫(xiě)
下例從score數(shù)據(jù)表里面把學(xué)生們?cè)诳荚囀录═)中的成績(jī)(不包括測(cè)驗(yàn)成績(jī)?。┎樵兂鰜?lái)。
Select * from score where event_id in (select event_id from event where type='T');
可見(jiàn),內(nèi)層查詢找出所有的考試事件,外層查詢?cè)倮眠@些考試事件搞到學(xué)生們的成績(jī)。
這個(gè)子查詢可以被改寫(xiě)為一個(gè)簡(jiǎn)單的關(guān)聯(lián)查詢:
Select score.* from score, event where score.event_id=event.event_id and event.event_id='T';
下例可以用來(lái)找出所有女學(xué)生的成績(jī)。
Select * from score where student_id in (select student_id form student where sex = 'f');
可以把它轉(zhuǎn)換成一個(gè)如下所示的關(guān)聯(lián)查詢:
Select * from score
Where student _id =student.student_id and student.sex ='f';
把匹配型子選擇查詢改寫(xiě)為一個(gè)關(guān)聯(lián)查詢是有規(guī)律可循的。下面這種形式的子選擇查詢:
Select * from tablel
Where column1 in (select column2a from table2 where column2b = value);
可以轉(zhuǎn)換為一個(gè)如下所示的關(guān)聯(lián)查詢:
Select tablel. * from tablel,table2
Where table.column1 = table2.column2a and table2.column2b = value;
(2)非匹配(即缺失)型子選擇查詢的改寫(xiě)
子選擇查詢的另一種常見(jiàn)用途是查找在某個(gè)數(shù)據(jù)表里有、但在另一個(gè)數(shù)據(jù)表里卻沒(méi)有的東西。正如前面看到的那樣,這種"在某個(gè)數(shù)據(jù)表里有、在另一個(gè)數(shù)據(jù)表里沒(méi)有"的說(shuō)法通常都暗示著可以用一個(gè)left join 來(lái)解決這個(gè)問(wèn)題。請(qǐng)看下面這個(gè)子選擇查詢,它可以把沒(méi)有出現(xiàn)在absence數(shù)據(jù)表里的學(xué)生(也就是那些從未缺過(guò)勤的學(xué)生)給查出來(lái):
Select * from student
Where student_id not in (select student_id from absence);
這個(gè)子選擇查詢可以改寫(xiě)如下所示的left join 查詢:
Select student. *
From student left join absence on student.student_id =absence.student_id
Where absence.student_id is null;
把非匹配型子選擇查詢改寫(xiě)為關(guān)聯(lián)查詢是有規(guī)律可循的。下面這種形式的子選擇查詢:
Select * from tablel
Where column1 not in (select column2 from table2);
可以轉(zhuǎn)換為一個(gè)如下所示的關(guān)聯(lián)查詢:
Select tablel . *
From tablel left join table2 on tablel.column1=table2.column2
Where table2.column2 is null;
注意:這種改寫(xiě)要求數(shù)據(jù)列table2.column2聲明為not null。

標(biāo)簽:, ,
-
亚洲成人久久蜜桃-国产成人av一区二区三区四区-成人一区二区三区黑人欧美-九九爱这里只有精品6 | 国产乱淫av一区二区三区-久久国产精久久精产国-日韩,亚洲高清不卡-2020中文字幕在线视频一区 | 久久久亚洲熟妇熟女一区二区-伊人婷婷涩六月丁香七月-欧美中文字幕精品人妻影-国产又大又圆又黄的视频 | 91国精品在线视频-91精品国产综合久久撸-日韩av两性啪啪-国产又粗又猛又爽又黄的软件 | av丝袜欧美另类亚洲-国产在线视精品在亚洲_欧美-国产麻豆成人av在线观看-亚洲欧美日韩国产综合在线观看 | 久久精品视频看看-久热国产视频在线观看-国产精品_国产精品_国产精品-av在线观看中文字幕日韩精品 | 熟妇人妻中文字幕网站-日韩精品老熟女-久久超碰97人人做人人-久久人妻一区二区三区免费 | 第四色婷婷人妻激情视频-久久综合久久综合九色-激情中文字幕一区二区三区免费视频-91国产精品久久久久久久久久久久久久 | 国产精品久久久久久久久一级-国产精品久久久久久久久三级-日韩欧美亚洲电影在线观看-人妻精品一区二区三区aⅴ | 不卡在线一区二区三区-97精品久久久久久久久2020-久久精品国产亚洲av麻豆图片-91天堂一区二区三区 | 成人一区二区三区成人精品-久久麻豆亚洲国产精品-久久久 91 精品-久久久久亚洲av成人麻豆 | 国产成人精品av大片-日韩精品久久美熟妇-精品中文久久久-国产精品999国产精品 | 亚洲另类图片 av-91午夜精品一区二区三区-人妻99在线视频-99久热在线精品视频播放 | 超碰在线资源免费观看-中文字幕久久久久久久久久久四区-国产黄页网址大全免费观看-日韩老熟女激情 | 日本熟妇人妻影片精选-91精品久久久蜜桃网站-91久久精品国产91性色69-17分钟视频一区二区三区 | 国产成人精品日本77亚洲777-一级a性色生活片久久无-国产激情久久久老熟女免费-97超碰在线视频观看 | 超碰97免费在线观看视频-91久久久久综合精品-婷婷午夜花亚洲-日韩不卡视频一区二区 | 日本一区久久久-老司机午夜在线视频-91精品久久久久久久蜜月-精品一区二区三区在 | 91麻豆成人久久精品二区三区-2021精品久久久久精品k8-久久热在线只有精品-午夜精品久久久久久91蜜桃 | 日韩中文字幕你懂的-国产日韩欧美精品导航-熟妇人妻久久久久久一区二区三区-中文字幕日韩人妻精品 | 久久久久国产精品视频-欧美激情在线视频一区二区三区-欧美成人激情一区二区-51精产国品一二三产区区别 | 97人人澡视频-人妻夜夜爽天天爽麻豆av-久久久久色综合亚洲成色777-欧美日韩激情一区综合 | 777亚洲熟妇色xxxxx-九九re久久免费视频-精品人妻一区二区三区四区六区-一区二区三区视频网 | 亚洲 欧美 日韩另类-午夜精品高潮呻吟久久av-欧美人妻中文字幕一区-欧美日韩激情一级 | 亚洲精品乱码久久久久久蜜桃欧美-91在线521欧美-91色综合婷婷香蕉-999国产精品永久免费观看 | 久久这里只有精品热视频-中文字字幕在线中文乱-日韩中文字幕成熟人妻-国产欧美日韩免费看 | 亚洲乱熟乱熟女乱一区二区-久久精品久久久久蜜桃-激情欧美日韩一区二区蜜桃-一区二区中文字幕蜜桃 | 77777亚洲午夜久久多喷-国产女同互慰一区二区三区-91久久国产丁香精品中文-久久婷婷丁香九月 | 日韩欧美亚洲在线-欧美精品久久久久三级-91精品国产综合久久久久久蜜臀-婷婷黄色n899.cn | 欧美人妻久久久久久综合-五月婷婷av网址在线-色婷婷综合专区-91乱子伦国产乱子伦无 | 蜜桃激情一区二区三区大全-日韩欧美成人中文字幕在线国产丝袜美腿-亚洲黄涩视频在线观看-日韩一区二区三区激情 | 激情五月天色在五月-av中文字幕二三四-久久久久久国产三级-黄色污污网站在线看 | 成人av一区二区三区久久-高清欧美少妇性猛交xxxxⅹ黑人猛交-中文字幕日产在线观看-国产精品久久久久久久稀缺资源 | 一区二区三区免费蜜桃av网站-日韩熟女人妻av-婷婷高清视频在线观看-国产精品9uu网站免费视频 | 成人午夜av网站免费在线观看-999国内精品永久免费视频大学生-岛国一区二区三区高清视频-激情五月婷婷综合中文字幕 | 欧美国精产品一二区-国产美女福利视频一区二区三区-99精品久久精品视频-日韩有码中文字幕一区 | 欧美三级视频综合一区二区-日韩欧美亚洲国产午夜在线-亚洲天堂成人在线看-久久精品久久久久精品 一区二区三区在线看-国产激情自拍丝袜熟女-日韩美女在线免费视频-色吊丝av中文字幕 | 91福利国产一区-日韩av一区的-蜜臀av精品一区二区三区-久久精品久久久久久国产,免费 | 97精品人妻一区二区三区大全-国产又粗又猛又爽黄老大爷视频-69精品人妻一区二区三区香蕉-人妻 日韩 中文字幕 一区 | 成人黄色免费一级片-91麻豆国产精品-www一区二区三区四区五区-国产一区二区三区在线视频… | 精品一二区中文字幕-欧美日韩卡一卡二卡三在线-欧美日韩精品久久久免费-国产成人精品在线观看91 欧美精品婷婷久久久久久-日韩美女一级免费视频-成人av电影一区在线-婷婷射在线视频 |