Heim  >  Artikel  >  Backend-Entwicklung  >  MYSQL多表联合查询的问题

MYSQL多表联合查询的问题

WBOY
WBOYOriginal
2016-06-06 20:45:281450Durchsuche

总共有三个表

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 比较基础的操作,题主应该花点时间掌握这个基础知识点。:)

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn