INNER JOIN T_Category AS c
ON b. FCategoryId = c .FId
WHERE b. FYearPublished =
(SELECT MIN(FYearPublished ) FROM T_Book WHERE T_Book .FCategoryId = c.FId)
--集合运算符in,any,all,exists 与子查询的结合
--如果子查询是多行多列,这样的子查询可以作为临时表
--如果子查询是多行当列,这样的子查询其实是一个结果集
--SQL 对这样的结果集提供了in,any,all exeists 等操作符
--需求: 检索所有图书出版年份内入会的读者信息
SELECT * FROM T_Reader
WHERE FYearOfJoin IN
(select FYearPublished FROM T_BOOK)
--SQL 中any 和some使用和功能都是相同的和 in运算符不同
--any必须和其他比较运算符共同使用 ,而且比较将比较运算符放
--在any 关键字符前 ,所比较的值也需求匹配子查询中的任意值
SELECT * FROM T_Reader
WHERE FYearOfJoin =any
(select FYearPublished FROM T_BOOK)
--这个查询结果和上面in的查询结果一样的
--也就是说'=any' 等价于In 运算符
--而'<>any' 等价于not in 运算符
--但是像'
3
--子查询在delete 语句中的应用
--删除同类书超过本
delete T_Book b1
WHERE ( SELECT COUNT (*) FROM T_Book2 b2
WHERE b1. FCategoryId=b2 .FCategoryId)> 3
|