正文

子查询2008-11-03 10:58:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzrj/39202.html

分享到:

  nIN引入的子查询 操作符IN,用来确定某个列值是否在内部查询的结果集中。 例:查询波士顿的供应商生产的产品名称和单    价。       首先,要知道哪些供应商是波士顿的,然后,通过波士顿的供应商编号查出相关的产品名称和单价。   SELECT ProductName , Unitprice FROM Products WHERE SupplierID IN (SELECT SupplierID FROM Suppliers WHERE City = 'Boston')   在操作符“IN”前可以加“NOT”取内部查询中相反的结果。 例:查询不是波士顿的供应商生产的产品信息。 SELECT ProductName , Unitprice FROM Products WHERE SupplierID NOT IN (SELECT SupplierID FROM Suppliers WHERE City = 'Boston')   nEXISTS引入的子查询 EXISTS是测试子查询是否有数据行返回,如果有则返回TRUE,否则返回FALSE。NOT EXISTS 则相反,当结果表为空时,才返回TRUE。 例:查询波士顿的供应商生产的产品名   称和单价。   SELECT ProductName , Unitprice FROM Products WHERE EXISTS (SELECT SupplierID FROM Suppliers WHERE Products.SupplierID =Suppliers.SupplierID AND City = 'Boston') 例:使用“NOT EXISTS”查询不是波士顿的供应      商生产的产品名称和单价。 SELECT ProductName , Unitprice FROM Products WHERE NOT EXISTS (SELECT SupplierID FROM Suppliers WHERE Products.SupplierID =Suppliers.SupplierID AND City = 'Boston')   n子查询和连接查询的比较       有些问题使用子查询解决会更简单,有些问题使用连接查询可以变得简单,因此要根据实际情况进行选择。 n当需要频繁地计算统计函数的值并将其作为外部查询的条件时,应该使用子查询。

阅读(1480) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册