【发布时间】:2017-10-16 00:55:06
【问题描述】:
如何创建一个查询,选择或连接多个表并返回仅匹配条件 keyworkd 的列。
我有 table1 'field_title_table'
entityid | field_title | entitytype
---------------------------------------
413 | WELCOME TO the USA | page_hub
table2 'field_description_table'
entityid | field_description | entitytype
---------------------------------------------
413 | Land of the free and | page_hub
我尝试了以下步骤
$query = db_select('field_title_table', 'wb');
$query->join('field_description_table','sd','sd.entityid = wb.entityid');
$query->fields('wb',array('field_title'));
$query->fields('sb',array('field_description'));
$db_or = db_or();
$db_or->condition('wb.field_title,'%'.$keyword.'%','LIKE');
$db_or->condition('sb.field_description,'%'.$keyword.'%','LIKE');
$query->condition($db_or);
$result = $query->execute()->fetchAll();
$keyword 可以是任何东西。因此,如果 $keyword 是“土地”,我只想从 field_description 表中返回结果“Land of the free and”,但我得到了 field_title 值和 field_description 值不管我的$keyword 只匹配一张桌子。
所以基本上我想要这个
SELECT field_title from field_title_table WHERE field_title LIKE '%$keyword%'
SELECT field_description from field_description_table WHERE field_description LIKE '%$keyword%'
没有多个 SELECT
所以我想要的输出是
如果我的关键字是welcome,那么输出应该是
[field_title] => WELCOME TO THE USA (field_title_table)
[field_description]=> '' (field_description_table)
如果我的关键字是land,那么输出应该是
[field_title] => '' (field_title_table)
[field_description]=> 'Land of the free and' (field_description_table)
如果我的关键字是the,那么输出应该是
[field_title] => WELCOME TO the USA (field_title_table)
[field_description]=> 'Land of the free and' (field_description_table)
【问题讨论】:
标签: php mysql sql-server drupal