人妻精品中文一区二区,亚洲国产成人久久成人52 http://www.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://www.jartj.cn/blog/view-69.html http://www.jartj.cn/blog/view-69.html#comments Sat, 13 Aug 2011 17:00:34 +0000 lin http://www.jartj.cn/blog/?p=69 一,子選擇基本用法
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。

]]>
http://www.jartj.cn/blog/view-69.html/feed 337
久久久免费福利视频观看-成年人在线观看视频免费播放-噜噜中文字幕一区二区三区-视频一区视频二区三区| 国产一区二区三区视频网站-日韩av影片免费在线观看-日韩av有码免费在线观看-制服丝袜天堂网在线观看| 国内一级一厂片内射视频播放磨-国产乐播传媒在线观看-让你操水蜜桃在线观看-深夜三级视频在线观看| 日韩成av在线免费观看-中文字幕亚洲第一精品-亚洲欧美日韩国产在线-国产精品国精品国产免费| 华人精品在线免费观看-国产熟女精品一区二区三区-国产成人午夜视频网址-女女同性女同一区二区三区九色| 日韩人妻少妇手机看片-高清av有码中文字幕在线-禁止18勿入国产精品视频-中文字幕精品乱码亚洲一区| 久久这里就有国产熟女精品-国产免费一级特黄录像-伊人久久热这里只有精品-国产三级一区二区三区在线观看| 日韩中文精品在线字幕-久久精品国产护士小美女-91黑丝女神在线播放-91人妻蝌蚪九色水蜜桃| 未满十八禁止免费观看网站-国产夫妻福利在线观看-亚洲国产黄色精品在线-日韩亚洲一卡二卡三卡| 水蜜桃精品视频在线观看-日本国产一区二区在线观看-69久久夜色国产精品69-免费观看亚洲成人av| av网站在线观看华人免费-美女露下体让人舔视频网站-六月丁香激情综合爱爱-宅福利有番号亚洲麻豆91| 国产精品一区成人精品果冻传媒-日韩精品一区二区三区不长视频-欧美日韩不卡在线视频-99久久热视频在线观看| 国产很黄免费观看久久-亚洲变态另类一区二区三区-欧美在线免费观看黄片-成人av不卡在线播放| 邻居少妇毛多水多太爽了-男人天堂手机在线视频-国产精品国产三级国产专播-韩国女主播福利视频一区二区| 国产高清丝袜av综合-精品亚洲一区二区在线-国产丝袜大长腿精品丝袜美女-日本熟女午夜福利视频| 久久综合九色综合久久-在线看日韩欧美中文字幕-国产成人亚洲精品青草天美-91亚洲中文天堂在线观看| 国产极品高颜值露脸女主播-国产日韩亚洲欧美综合-成人亚洲天堂av在线-日韩在线观看免费不卡| 国产精品人人爱一区二区白浆-中文字幕一区二区三区人妻精品-91人妻在线欧美精品不卡-好吊视频一区二区三区在线| 午夜性福福利视频一区二区三区-午夜福利在线看片在线-欧洲内射免费人文艺术-亚洲天堂成人av在线| 精品女同一区二区免费播放-四虎成人精品国产永久免费-日韩在线播放av不卡一区二区-久热久草香蕉在线视频| 国产精品一区久久精品国产-一区二区三区在线日本视频-亚洲欧美天堂精品在线-午夜久久一区二区狠狠干| 中文字幕av东京热久久-国产精品日韩精品最新-亚洲激情av免费观看久久-亚洲第一精品国产网站| 亚洲人妻av在线播放-日韩午夜短视频在线观看-91精品久久午夜中文字幕-亚洲熟伦熟女新五十熟妇| 日本三十四十五十路熟妇-国产一区二区三区蜜桃视频-蜜桃传媒第一区免费观看-来点刺激的视频日韩经典三级| 一级女性全黄久久生活片-日韩久久精品视频在线观看-国产精品色午夜免费视频-亚洲码欧洲码一区二区三区| 精品人伦一区二区三区蜜桃-中文字幕久久人妻熟人妻-中文字幕av乱码在线看-久久精品国产亚洲妇女av| 亚洲熟妇av熟妇在线-国产精品午夜福利清纯露脸-粉嫩av在线播放一绯色-日产精品久久久久久蜜臀| 97中文字幕一区二区三区-国产精品亚洲av无人-亚洲国产精品自产拍久久-成人深夜福利在线视频| 久久国产精品国产婷婷-四虎在线观看最新入口-天堂中文资源在线天堂-久久亚洲av日韩av天堂| 美女被狂躁到高潮视频-国产熟女精品自拍视频-亚洲中文字幕在线精品一区-成人在线中文字幕电影| 亚洲av日韩av天堂影片精品-熟妇人妻丰满少妇中文-国产精品日本一区二区三区-国产精品熟女乱色一区二区| 国产欧美日韩精品一区二-久久精品国产精品青草色艺-人妻熟妇视频一区二区不卡-亚洲国产精品第二在线播放| 欧美国产日本韩国一区二区-麻豆天美东精91厂制片-亚洲成人自拍视频在线观看-娇妻互换享受高潮91九色| 男人天堂色男人色偷偷-国产内射在线干得爽到语无次-国产成人亚洲欧美二区综合-精品欧美高清视频观看| 天堂av免费资源在线观看-青春草在线视频播放免费观看网站-亚洲精品中文字幕久久桃色-亚洲成人有码免费在线| 亚洲老妈激情一区二区三区-夜晚福利视频亚洲精品自拍视频-亚洲av永久精品一区二区在线-中文国产人精品久久蜜桃| 国产白浆一区二区在线观看-青草衣衣精品国色天香亚洲av-欧美午夜福利性色视频-成人亚洲一区二区三区在线观看| 少妇高潮真爽在线观看-韩国福利视频一区二区三区-警花av一区二区三区-尤物视频国产在线观看| 京香一区二区三区中文字幕-国内在线精品一区二区三区-久久亚洲精品色噜噜狠狠-亚洲成av人一区二区三区| 国产精品高潮呻吟久久av嫩-青青草免费公开在线观看视频-亚洲欧美日韩另类综合视频-国产三级在线观看精品| 网站视频精品一区二区在线观看-中文有码中文字幕免费视频-99热这里有精品久久-日韩av在线高清免费观看|