我有一个MySQL查询,我试图同时搜索2个表。这是用于搜索常规客户和商业客户的自动完成搜索框。下面是代码:MySQL联盟丢失表名
$query = mysql_query("SELECT * FROM clients WHERE lastname LIKE '$q%' AND agentid = '$agentid'
UNION
SELECT * FROM busclients WHERE busname LIKE '$q%' AND agentid = '$agentid'")or die(mysql_error());
if($query) {
while ($result = mysql_fetch_array($query)) {
$busname = $result['busname'];
print_r($result);
if(isset($busname)){
$description['id'] = 'viewbusiness.php?id=' . $result['ID'];
$description['value'] = $busname ;
array_push($return_arr,$description);
}
else
{
$description['id'] = 'viewclient.php?id=' .$result['ID'];
$description['value'] = $result['lastname'] . ", " . $result['firstname'] ;
array_push($return_arr,$description);
}
}
}
的问题是,企业客户会被分配在固定客户的表名,所以代码永远不会使用,如果(isset($ busname)),因为busname成为姓氏,而是和引导你进入veiwclient页面。
您可能需要更改查询以使用JOIN,以便总线名称和姓氏在输出中是单独的字段。 –
[MySQL连接在2个表上]可能的重复(http://stackoverflow.com/questions/22096814/mysql-join-on-2-tables) – DRapp