我有 3 张桌子;
项目、活动、客户。
我需要从搜索词匹配的所有 3 个表中返回结果。但是,我需要检查项目和活动表中的“名称”列,以及客户表中的“描述”列。注意这是一个现有的客户端数据库,我没有权限更改列名。
示例:用户搜索“数据”,我需要选择:
name as title FROM projects WHERE name LIKE %data%,
name as title FROM campaigns WHERE name LIKE %data%
和
description as title FROM clients WHERE description LIKE %data%
我正在努力合并查询。以下是我到目前为止所拥有的,它返回一个语法错误。我也在想我可能采取了错误的方法。
SELECT
p.name,
c.name,
cl.description AS title
FROM
projects,
campaigns,
clients
WHERE
p.name LIKE % DATA %
OR c.name LIKE % DATA %
OR cl.description LIKE % DATA %
您正在寻找union all
:
SELECT name as title FROM projects WHERE name LIKE %data%,
UNION ALL
SELECT name as title FROM campaigns WHERE name LIKE %data%
UNION ALL
SELECT description as title FROM clients WHERE description LIKE %data%;
如果要删除重复项,请使用UNION
代替UNION ALL
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句