(16)关联子查询。(17)将子查询作为临时表。

来源:互联网 发布:轴系校中软件 编辑:程序博客网 时间:2024/05/22 14:58

(16)关联子查询。所谓关联子查询中,指可以在内部查询中使用外部查询的结果,如下
所示:
242 PHP 网络编程技术与实例

select items.item_id,name from items

where exists (select * from orders where orders.item_id=items.item_id);


以上查询了所有有被订购记录的书籍信息。这里使用了关键字EXISTS,如果查询还没
有订购记录的书籍信息,可以使用NOT EXIST(细心的读者会发现通过左关联 left join 也可以实现)。
在上面的查询中,子查询中使用了外部查询的表集items,这就是关联子查询。如果外部
查询中没有包含的表,则不能引用。
(17)将子查询作为临时表。有些时候,可以将子查询的结果作为一个临时的表放在FROM
后面来进行查询,如下所示:

select member_id from (select * from members where member_login='admin') as tempTable;


以上是将“select * from members where member_login='admin'”子查询作为一个临时表,
注意在使用临时表的时候,必须要为该子查询创建一个别名。
SELECT 也可以被用于检索没有引用任何表的计算列。如下所示:

select 10+10; # from dual;


0 0