MySql之子查询(嵌套查询):
// in 的用法:表示 只查询出某个条件符合in()括号里元素的数据。
SELECT * FROM t_book WHERE booktypeId IN (SELECT id FROM
t_booktype);
//not in 的用法:与 in 的用法相反。
SELECT * FROM t_book WHERE booktypeId NOT IN (SELECT id
FROM t_booktype);
//运算符的使用:这里是 >= 的使用。
SELECT * FROM t_book WHERE price>=(SELECT
price FROM t_pricelevel WHERE priceLevel=1);
//exists 的使用:如果SELECT * FROM
t_booktype执行后,能查出数据,那么才执行SELECT * FROM t_book ,否则查不到数据。
SELECT * FROM t_book WHERE EXISTS (SELECT * FROM
t_booktype);
// not exists的使用:与exists相反,直接查不出任何数据。
SELECT * FROM t_book WHERE NOT EXISTS (SELECT * FROM
t_booktype);
// any 的使用:表示查询出在any后的集合中满足其中任意一个元素所匹配的数据。
eg:(SELECT price FROM t_pricelevel查出的是40,60,80)
那么,price>= ANY (SELECT price FROM
t_pricelevel)表示只要price>=40,60,80中的任意一个,都被查出。
SELECT * FROM t_book WHERE price>= ANY
(SELECT price FROM t_pricelevel);
// all的使用:与any相反,必须满足所有的条件的才会被查出。
SELECT * FROM t_book WHERE price>= ALL
(SELECT price FROM t_pricelevel);