国产精品色哟哟网站,欧美美国日本一区二区三区 http://m.jartj.cn/blog 中山php|最優(yōu)網(wǎng)絡(luò) Mon, 13 May 2013 04:56:43 +0000 en hourly 1 http://wordpress.org/?v=3.1.4 Mysql 子查詢的用法 http://m.jartj.cn/blog/view-69.html http://m.jartj.cn/blog/view-69.html#comments Sat, 13 Aug 2011 17:00:34 +0000 lin http://m.jartj.cn/blog/?p=69 一,子選擇基本用法
1,子選擇的定義
子迭擇允許把一個(gè)查詢嵌套在另一個(gè)查詢當(dāng)中。比如說:一個(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種)
? 用子選擇來生成一個(gè)參考值
在這種情況下,用內(nèi)層的查詢語(yǔ)句來檢索出一個(gè)數(shù)據(jù)值,然后把這個(gè)數(shù)據(jù)值用在外層查詢語(yǔ)句的比較操作中。比如說,如果要查詢表中學(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é)果主要是用來進(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)層。看外部查詢的結(jié)果是否滿足內(nèi)部查間的匹配徑件。這種"由外到內(nè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)層查詢沒有必要列出有關(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ǔ)句中的比較操作來進(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ǔ)句更容易讓人理解,再來個(gè)例子
比如你想找到所有居住在A和B的學(xué)生。
select * from student where state in('A','B')
二, 把子選擇查詢改寫為關(guān)聯(lián)查詢的方法。
1,匹配型子選擇查詢的改寫
下例從score數(shù)據(jù)表里面把學(xué)生們?cè)诳荚囀录═)中的成績(jī)(不包括測(cè)驗(yàn)成績(jī)?。┎樵兂鰜怼?br /> Select * from score where event_id in (select event_id from event where type='T');
可見,內(nèi)層查詢找出所有的考試事件,外層查詢?cè)倮眠@些考試事件搞到學(xué)生們的成績(jī)。
這個(gè)子查詢可以被改寫為一個(gè)簡(jiǎn)單的關(guān)聯(lián)查詢:
Select score.* from score, event where score.event_id=event.event_id and event.event_id='T';
下例可以用來找出所有女學(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';
把匹配型子選擇查詢改寫為一個(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)非匹配(即缺失)型子選擇查詢的改寫
子選擇查詢的另一種常見用途是查找在某個(gè)數(shù)據(jù)表里有、但在另一個(gè)數(shù)據(jù)表里卻沒有的東西。正如前面看到的那樣,這種"在某個(gè)數(shù)據(jù)表里有、在另一個(gè)數(shù)據(jù)表里沒有"的說法通常都暗示著可以用一個(gè)left join 來解決這個(gè)問題。請(qǐng)看下面這個(gè)子選擇查詢,它可以把沒有出現(xiàn)在absence數(shù)據(jù)表里的學(xué)生(也就是那些從未缺過勤的學(xué)生)給查出來:
Select * from student
Where student_id not in (select student_id from absence);
這個(gè)子選擇查詢可以改寫如下所示的left join 查詢:
Select student. *
From student left join absence on student.student_id =absence.student_id
Where absence.student_id is null;
把非匹配型子選擇查詢改寫為關(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;
注意:這種改寫要求數(shù)據(jù)列table2.column2聲明為not null。

]]>
http://m.jartj.cn/blog/view-69.html/feed 337
国产日本高清一区二区三区-久久亚洲成人精品性色-九九热99这里只有精品-亚洲愉拍自拍另类天堂| 国产成人av在线不卡-丝袜自拍偷拍日韩欧美一区-91午夜福利一区二区三区在线看-四虎影在永久免费在线观看| 国内熟妇与亚洲洲熟妇妇-伊人久久亚洲一区二区三区-亚洲av不卡在线短片-午夜国产理论大片高清| 国产a国产片免费观看-国产男女羞羞的视频在线观看-熟女亚洲综合精品伊人久久-国产精品av中文字幕| 精品国产高清一区二区三区-亚洲av日韩av二区三区篇-亚洲精品一区高潮喷水-中文字幕人妻色偷偷久久皮| 最近日本中文字幕免费完整-欧美男女性生活真人视频-激情综合网激情综合网激情综合-中文字幕日韩有码国产精品| 人妻少妇一区二区三区精品-三级尤物视频在线观看-野花在线中文字幕伊人-亚洲精品一区二区播放| 国产亚洲精品第18页-久久精品理论午夜福利-99久久91热久久精品免费看-国产成人精品国产成人亚洲| 国产成人午夜精品久久-91久久精品一区二区喷水喷白浆-中文字幕日本人妻99-美女人妻少妇一区二区三区| 四虎在线观看永久免费-久久精品熟女亚洲av香蕉-av国内精品久久久久影院三级-亚洲国产一区二区三区av| 大奶人妻丝袜中出在线-亚洲一区久久中文字幕-国产成人av剧情自拍网站-嫩草伊人久久精品少妇av| 欧亚久久日韩av久久综合-国产性感美女色诱视频-色噜噜人妻丝袜av先锋影院先-二次元中文字幕色在线| 免费观看国产裸体视频-久久亚洲精精品中文字幕早川悠里-99精品国产一区二区青青牛奶-久久精品成人av免费观看| 日韩中文字幕乱码久久-日本一本无道码日韩精品-久久最黄性生活又爽又黄特级片-亚洲av香蕉精品一区二区三区| 免费手机在线观看bbb视频-国产欧美亚洲精品第1页青草-国产黄a三级三18级三级看三级-宅男视频在线观看一区二区三区| 日本在线无乱码中文字幕-国产美女自拍视频精品一区-精品人妻中文字幕一区二区三区-精品国产一级二级三级| 国产在线一区二区三区视频-国产一区二区三区成人18禁-国产精品自偷一区在线观看-熟女人妻片濑仁美在线| 久热视频在线免费观看-亚洲一区二区日韩综合久久-免费观看在线观看青青草视频-精品一区二区亚洲一区二区血炼| 亚洲中文字幕中出在线-美女口爆吞精在线播放-亚洲欧美清纯唯美另类-国产一区二区三区免费观看不卡| 日本高清成人一区二区三区-亚洲国产精品久久成人-91福利国产午夜亚洲精品-极品激情国产剧情av| 中文字幕在线永在少妇-97免费公开在线视频-国产三级自拍视频在线播放-黄色aaa三级三级三级| 一区二区三区日本在线播放-男人的天堂亚洲最新在线-各类女厕正面偷拍精品-91精品蜜臀国产自产| 一本久道视频无线视频试看-亚洲国产精品一区二区三区久久-中文字幕色偷偷人妻久久-久久精品99国产精品中| 亚洲伊人色综合网站亚洲伊人-香蕉久久国产超碰青草91-激情综合七月插插综合-亚洲一区二区三区夏目彩春| 国产精品一区二区小视频-欧美亚洲国产精品激情在线-日韩免费视频一区二区三区视频-精品亚洲国产成av人片传媒| 国产激情久久久久成熟影院-成人午夜免费在线视频-亚洲中文字幕成人综合网-色噜噜精品视频在线观看| 亚洲av色福利天堂在线观看-人妻少妇午夜福利视频-男人的天堂av在线视频-国内揄拍国产精品人妻一区二区| 免费观看一区二区av蜜桃-免费一级特黄久久大片-每日更新日韩中文字幕有码-97视频在线观看午夜| 中出少妇中文字幕一区二区三区-九九久久精品国产亚洲-美女免费是黄的一区二区av-日本在线视频观看91| 欧美亚洲国产另类在线-九九热精品在线免费视频-日本高清有码在线一区-青草第一视频在线观看| 日本人妻中文字幕久久-色老汉免费在线观看一区-成人国产在线观看网站-欧美日韩国产亚洲一区二区三区| 亚洲黄色一级二级三级在线观看-成年人手机视频在线观看-都市激情校园春色亚洲一区-九九久久免费视频一区二区三区| 国产深夜视频在线观看-丰满人妻熟妇乱又乱精品-青草视频在线观看资源-奇米网东京热日本人妻| 精品国产美女av天堂-狼人av在线免费观看-日韩精品人妻中文字幕有码在线-欧美视频亚洲视频自拍偷拍| 午夜中文字幕一区二区三区-亚洲精品av在线免费观看-蜜臀av一区二区三区久久bu-五月激情综合在线视频| 国产好大好硬好爽好湿免费视频-国产精品一区二区精品一区二区-白白色发布在线播放国产-99久久国产精品成人观看| 欧亚久久日韩av久久综合-国产性感美女色诱视频-色噜噜人妻丝袜av先锋影院先-二次元中文字幕色在线| 少妇高潮了好爽在线观看男-麻豆国产传媒国产免费-欧美三级黄片在线播放-亚洲一区域二区域三区域四| 日韩精品一区二区蜜桃免费视频-色综合视频一区二区三区-欧美一级黄片视频在线播放-国产精品视频一区二区色戒| 亚洲国产国语对白在线视频-中文字幕中文字字幕码一区二区-毛片av在线免费观看-免费在线观看av毛片| 97人妻一区二区精品视频-99久热精品视频在线观看-韩国av福利在线观看-亚洲熟妇自偷自拍另类|