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中使用!)