>  기사  >  백엔드 개발  >  MYSQL多表联合查询的问题

MYSQL多表联合查询的问题

WBOY
WBOY원래의
2016-06-06 20:45:281495검색

总共有三个表

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

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

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

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

现在也要匹配相应的terms表的name,请问怎么写呢?

回复内容:

总共有三个表

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

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

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

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

现在也要匹配相应的terms表的name,请问怎么写呢?

<code>select post.id, post.title from rela left join post on rela.postid = post.id left join terms on rela.termid = terms.id where post.title like '%关键词%' or post.content like '%关键词%' or terms.name like '%关键词%'
</code>

联合查询是 Mysql 比较基础的操作,题主应该花点时间掌握这个基础知识点。:)

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.