多表联合查询的问题

多梦 2014-05-25 07:46:13
总共有三个表

post表:id,title,content
terms表:id,name
rela表:postid,termid

post表保存文章内容(文章ID、文章标题、文章内容),terms表保存分类内容(分类ID、分类名称),rela表保存的是文章分类信息,也就是文章ID对应的分类ID。


单纯匹配post表的title和content我知道是这样


query(
"
SELECT id, title
FROM post
WHERE (
`title` LIKE '%关键词%'
OR `content` LIKE '%关键词%'
)
LIMIT 0 , 30
"
);


现在也要匹配相应的terms表的name,请问怎么写呢?
...全文
198 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2014-06-10
  • 打赏
  • 举报
回复
举例说明用你的要求
多梦 2014-06-09
  • 打赏
  • 举报
回复
引用 4 楼 wwwwb 的回复:
举例说明用你的要求
引用 5 楼 ACMAIN_CHM 的回复:
select * from post , rela, terms where post.id=rela.postid and terms.id=rela.termid and (`title` LIKE '%关键词%' OR `content` LIKE '%关键词%')
抱歉,上面没说清楚。 应该是这样的,之前标题、内容相似,现在想要标题、内容、分类名称(terms表的name)相似。
ACMAIN_CHM 2014-05-26
  • 打赏
  • 举报
回复
select * from post , rela, terms where post.id=rela.postid and terms.id=rela.termid and (`title` LIKE '%关键词%' OR `content` LIKE '%关键词%')
wwwwb 2014-05-26
  • 打赏
  • 举报
回复
举例说明用你的要求
多梦 2014-05-26
  • 打赏
  • 举报
回复
引用 1 楼 Novolee 的回复:
试试这个: select post.*,terms.name from post left join rela on post.id=rela.postid left join terms on rela.termid=terms.id WHERE ( `title` LIKE '%关键词%' OR `content` LIKE '%关键词%' OR terms.name like '%关键词%' )
引用 2 楼 rjzou2006 的回复:
用关联查询啊, 文章要都有分类就这样写,文章要是不一定有分类,就还需要修改下
select post.*,terms.name from post  as a, real as b , terms as c
WHERE (
                a.title LIKE  '%关键词%'
                OR  a.content LIKE  '%关键词%'
                OR c.name like '%关键词%'
            )
and a.id=b.postid
and b.termid=c.id
貌似不行~
rjzou2006 2014-05-25
  • 打赏
  • 举报
回复
用关联查询啊, 文章要都有分类就这样写,文章要是不一定有分类,就还需要修改下
select post.*,terms.name from post  as a, real as b , terms as c
WHERE (
                a.title LIKE  '%关键词%'
                OR  a.content LIKE  '%关键词%'
                OR c.name like '%关键词%'
            )
and a.id=b.postid
and b.termid=c.id
李睿_Lee 2014-05-25
  • 打赏
  • 举报
回复
试试这个: select post.*,terms.name from post left join rela on post.id=rela.postid left join terms on rela.termid=terms.id WHERE ( `title` LIKE '%关键词%' OR `content` LIKE '%关键词%' OR terms.name like '%关键词%' )

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧