60 子查询

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

    condition()中的$value还可以使用子查询的形式。为了使用子查询,首先需要使用db_select()构建一个SelectQuery对象。接着,我们不执行这个Select查询,而是将其作为condition()的value参数传递给另一个查询。当主查询执行时,它将被自动的集成过来。

    子查询通常只在两种情况下使用:当子查询生成的结构只包含一行并且只有一个值时,同时运算符为=<><=>=;或者当子查询只返回单列信息,而运算符为IN。除此之外,大多数其它的关联方式都会造成语法错误。

    注意,在一些数据库上,特别是MySQL,条件语句中的子查询,运行效率有点慢。如果可能的话,尽量在FROM语句中使用关联、子查询,或者使用多个简单的条件语句片断来代替子查询。


Drupal版本: