Sql server 使用SQL Server搜索多个表

Sql server 使用SQL Server搜索多个表,sql-server,Sql Server,我有三张桌子: ____________________ ____________________ ____________________ posts tags posts_x_tags ____________________ ____________________ ____________________ | id | title | body | id | tag_name | p

我有三张桌子:

____________________   ____________________   ____________________
posts                  tags                   posts_x_tags
____________________   ____________________   ____________________
| id | title | body    | id | tag_name        | post_id | tag_id
帖子和标签有多对多的关系。 可以搜索posts.body或posts.title或tags.tag\u name

这让我很接近,但返回的副本太多:

SELECT * FROM posts p
INNER JOIN posts_x_tags x ON p.id = x.post_id 
INNER JOIN tags t ON t.id = x.tag_id 
AND t.tag LIKE '%a%'
OR p.title LIKE '%a%'
OR p.body LIKE '%a%';

任何帮助都将不胜感激。

您可以使用SELECT DISTINCT。。。为了从结果集中删除重复项。

Ya尝试了这个方法。我明白了:“文本数据类型不能被选择为独立的,因为它是不可比较的。”@preferer:YIKES!!你在某处使用
文本
作为数据类型?!??!?!?现在不要再这样做了!此类型已弃用-不要使用它-无论如何,请使用
VARCHAR(MAX)
NVARCHAR(MAX)
(这些类型也可以在SELECT中使用!)