Mysql Drupal 7 db_选择嵌套选择查询
如何将嵌套的select查询转换为Drual 7 db_select?以下是问题查询:Mysql Drupal 7 db_选择嵌套选择查询,mysql,sql,drupal,drupal-7,drupal-modules,Mysql,Sql,Drupal,Drupal 7,Drupal Modules,如何将嵌套的select查询转换为Drual 7 db_select?以下是问题查询: select * from tbl_word where EngWord like '%apple%' or WordID in ( select WordID from tbl_subword where EngWord like '%
select
*
from
tbl_word
where
EngWord like '%apple%' or
WordID in (
select
WordID
from
tbl_subword
where
EngWord like '%apple%'
);
从语义上讲,这很简单:
$term = 'apple';
$sub_query = db_select('tbl_subword')
->fields('tbl_subword', array('WordID'))
->condition('EngWord', '%' . db_like($term) . '%'), 'LIKE');
$query = db_select('tbl_word')
->fields('tbl_word')
->condition(db_or()
->condition('EngWord', '%' . db_like($term) . '%', 'LIKE')
->condition('WordID', $sub_query, 'IN')
);
$results = $query->execute()->fetchAll();
看到了吗,这不会产生一个,在主查询中,我认为他需要,或者子查询的术语?太好了!它工作正常。只要在导致解析错误的条件下修复额外的braket。