我正在使用php和mysql的高级搜索功能。搜索多个表Mysql
的表是:
blogPost[id, title, description]
water[id, title, description,]
waterSpecie[id, waterId, specieId]
specie[id, name]
user[id, username]
我想要做的是: 用户将能够从一个文本字段关键字搜索,其结果只能是唯一的一次。 例如:
用户搜索鳕鱼然后我想显示所有的鳕鱼标题或描述和所有的水中有鳕鱼在其中,并且如果用户是nicked鳕鱼的博客帖子。但是,如果让我们说blogPost在其标题和说明中加入了鳕鱼,我不希望它在结果列表中出现两次。
但是,如果只允许说blogPost表的鳕鱼的标题,我只想显示,没有别的。
我已经设法做到这一点与SQL查询:我现在想添加blogPost表到该查询,并使其可以从中进行搜索。所以如果只有一个表有鳕鱼,我只想显示该表的结果。
SELECT DISTINCT W.lat, W.lng, W.municipalityId, W.title, W.description
FROM water AS W, specie AS S, waterSpecie AS WS
WHERE S.name LIKE '%$term%' AND W.id = WS.waterId AND S.id = WS.specieId
OR W.title LIKE '%$term%' AND W.id = WS.waterId AND S.id = WS.specieId;
我希望我已经设法解释我的问题,并希望我可以在这个问题上得到一些帮助。