我有两个表和一个搜索表,只需搜索一个关键字。我正试图在两个表中搜索该关键字以查找多个列,如果查询匹配,则获取id列以供进一步使用。我试过这个(假设“优惠券”是用户正在搜索的术语)

SELECT `ID` FROM `Profiles` AS `p` WHERE `p`.`Status` = 'Active' AND `p`.`Address`
LIKE '%coupon%' OR `p`.`BusinessName` LIKE '%coupon%' OR `p`.`BusinessSubCategory`
LIKE '%coupon%' OR `p`.`DescriptionMe` LIKE '%coupon%' OR `p`.`Tags` LIKE '%coupon%'
UNION SELECT `id` FROM `products` AS `d` WHERE `d`.`status` = 'approved' AND
`d`.`title` LIKE '%coupon%' OR `d`.`desc` LIKE '%coupon%' OR `d`.`tags` LIKE '%coupon%'

这里我要的是配置文件的id和与关键字匹配的产品的id。我试过了,结果很奇怪,看起来只有配置文件ID。所以,这是一个错误的查询。这种搜索应该查询什么?内部连接?请给我一些样本查询,我将非常感谢任何帮助。

最佳答案

试试这个:

SELECT `ID`,'profile_ID' FROM
`Profiles` AS `p`
WHERE `p`.`Status` = 'Active' AND `p`.`Address`
LIKE '%coupon%' OR `p`.`BusinessName` LIKE '%coupon%' OR `p`.`BusinessSubCategory`
LIKE '%coupon%' OR `p`.`DescriptionMe` LIKE '%coupon%' OR `p`.`Tags` LIKE '%coupon%'


UNION ALL

SELECT `id`, 'productID' FROM `products` AS `d` WHERE `d`.`status` = 'approved' AND
`d`.`title` LIKE '%coupon%' OR `d`.`desc` LIKE '%coupon%' OR `d`.`tags` LIKE '%coupon%'

10-08 11:33