MYSQL多表链接-多表拼接成一个新的表
七娃博客175人阅读
最近在学写接口的过程中遇到这样一个有意思的情况(练习的wordpress的数据库):
我们建友链分类之后,会在wp_terms表中新增一个分类,这个表会生成一个唯一term_id,然后wp会在wp_term_taxonomy表中把分类信息放到这里,例如描述,父分类,数量,链接类型。由于我们建的友链分类,所以链接类型是link_category;同时也会自动在wp_termmeta加入分类图片的key和value;
当我们需要查询指定友链分类下的所有链接的时候,这时候难点就来了,同时要查询不低于5个表,窝草!
其实这个地方需要用到数据库的多表查询-连接查询。
连接查询,顾名思义,就是将多个表根据相同的字段关联成一个表。mysql连接查询方式有内连接、左连接、右连接三种方式。
左/右连接的区别在于以第一个表为主还是以第二个表为主。左连接以第一个表为主表,右连接以第二个表为主表。左右连接,没有匹配到的字段都默认为null.
内连接,一次查询多个连接,然后用where用关键字段拼接起来
内连接:
select * from wp_term_taxonomy t , wp_termmeta tm, wp_term_relationships tr ,wp_links links WHERE t.term_id=tm.term_id AND t.term_taxonomy_id=tr.term_taxonomy_id AND tr.object_id=links.link_id
效果如下:
左连接:
select * from wp_term_taxonomy t left join wp_termmeta tm on t.term_id=tm.term_id left join wp_term_relationships tr on t.term_taxonomy_id=tr.term_taxonomy_id
效果如下:
然后对比之后,发现内连接才是最准确的,是我们需要的数据。然后可以基于内连接表再进行查找,找到我们需要的数据。
评论 | 0 条评论
登录之后才可留言,前往登录