七、SQL-子查詢⑥(in運算符)

IN 運算符:

使用IN運算符可以用來匹配一個固定集合中的某一項。

如:檢索在2001、2003和2005年出版的所有圖書:

SELECT * FROM T_Book WHERE FYearPublished IN(2001,2003,2005)

執行結果:

FId FName FYearPublished FCategoryId
1 About J2EE 2005 4
2 Learning Hibernate 2003 4
4 Jane Eyre 2001 1
15 DaoDeJing 2001 6

這里進行匹配的集合是已經確定的集合“2001,2003,2005”,如果要匹配的集合是動態的則無法用這種方式來進行匹配了。
如,需要檢索所有圖書出版年份內入會的讀者信息,可以使用簡單的SQL語句檢索出所有的圖書的出版年份:

select FYearPublished FROM T_Book

執行結果:

FYearPublished
2005
2003
1999
2001
2002
1982
1860
1700
2008
1930
1945
1970
1971
1771
2001
1995

這個查詢結果是多行單列的,因此可以將其用來與IN 運算符進行匹配運算,SQL語句如下:

SELECT * FROM T_Reader WHERE FYearOfJoin IN(select FYearPublished FROM T_Book)

執行結果:

FId FName FYearOfBirth FCity FProvince FYearOfJoin
1 Tom 1979 TangShan Hebei 2003
2 Sam 1981 LangFang Hebei 2001
3 Jerry 1966 DongGuan GuangDong 1995
4 Lily 1972 JiaXing ZheJiang 2005
5 Marry 1985 BeiJing BeiJing 1999
6 Kelly 1977 ZhuZhou HuNan 1995
7 Tim 1982 YongZhou HuNan 2001
9 John 1979 QingDao ShanDong 2003
11 July 1983 ZhuMaDian HeNan 1999
12 Fige 1981 JinCheng ShanXi 2003
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容