在mysql中使用搜索多个表

时间:2013-11-03 20:10:18

标签: mysql select search

我有两个表用户和卖家,其中user_id和seller_id不同。我想比较第一个名称的搜索查询和卖家和用户的姓氏,并获得结果。这两个表没有与之关联的外键,在卖家表上只有卖家名称。没有名字或姓氏。

SELECT *
FROM users
WHERE first_name LIKE "%'.$search_string.'%"
OR last_name LIKE "%'.$search_string.'%"

适用于users表..如何将其与卖家表联系起来?

在users表中,我想获取user_id,first_name,last_name。从卖家表中我想获得seller_id,seller_name。

1 个答案:

答案 0 :(得分:0)

我不太了解你想要完成的任务,因为你没有提到是否有一个可连接的字段,例如,事务ID,用于关联用户和卖家。

如果您只搜索主题与搜索字符串匹配的任何用户行或卖家行,您可以尝试使用

SELECT 'users' as origin, CONCATENATE('first_name',' ','last_name') as name
FROM users
WHERE (first_name like '%".$search_string."%' OR  last_name like '%".$search_string."%')

UNION

SELECT 'sellers' as origin, seller_name as name
FROM sellers
WHERE ( seller_name like '%".$search_string."%')

请记住,如果删除“origin”列,UNION语句将对结果集执行隐式DISTINCT。如果您需要显示欺骗结果,那么您应该使用UNION ALL。