回答

收藏

根据帖子ID检索标签

技术问答 技术问答 168 人阅读 | 0 人回复 | 2023-09-11

我有三个表:posts,post_tags和tags。一个帖子可以有多个标签,而一个标签可以属于多个帖子。由于这种多对多关系,我做了一张post_tags桌子。它有两个字段:p_id和t_id。它们都是帖子表和标签表的外键。现在,当我运行PHP方法以获取最新帖子时,我还想在一个查询中检索属于该帖子的标签。仅供参考,这是这三个表:
9 R( j2 V4 o# `9 ]帖子
0 O3 }- e# U" W- K' F| p_id | c_id | u_id |   title   |     body    |      published      |
8 S) N0 Y+ Y- O( X0 I----------------------------------------------------------------------
+ n5 N, D, R7 l! w8 h|  1   |  1   |   1  | first post| lorem ipsum | 2012-01-27 18:37:47 |; q" V8 `" t1 Q3 Q, V7 c
post_tags
% \- @1 T: n3 \: P+ o| p_id | t_id |8 R$ c5 H- T: H% T$ r, N+ X
---------------
9 y8 w1 b0 _( J! {; ]7 B8 P7 \|  1   |  3   |& ?8 d! L. m; f1 }6 U
标签" z" Z. Q. w# Z6 p
| t_id |     name    |     slug    |- `2 c# s: ~7 S  u8 u
------------------------------------
% E4 l! n' D# v8 U9 B/ P# ^|  3   | programming | programming |
" J# P9 L# ~% P! K" W这是我现在用来获取不带标签的最新帖子的PHP代码:) W; @9 V% ?  v; n$ ^: }+ E& I4 i
public function getLatestPosts()% I$ S5 q& f) n0 E+ Z+ s  k
{
7 @! T+ c0 k# I/ L7 D7 N$ Q    $query = $this->db->query('SELECT title, clean_title, body, published FROM posts ORDER BY published DESC');
1 W4 a1 V! K  p5 L    $blogPosts = array();
4 b! ]+ K  E7 ^" I( k    foreach ($query->result() as $row). \$ d. J# B' k7 v) R: W- @) y
    {, ?6 B2 `4 l' E7 i0 v. R
        $blogPosts[] = array('title' => $row->title,
; j2 L$ }: D7 L2 X: u1 m                             'clean_title' => $row->clean_title,
5 e# H; }5 I: x5 B+ K                             'body' => $row->body,$ `: n2 q+ k, Q. A
                             'published' => $row->published);, a& B- N- }5 r+ f3 E* o  V
    }& Q0 f7 Q. `; L
    return $blogPosts;
$ d' n6 k$ G6 ~% I1 ~; C/ K}+ c* N; D: b6 W7 @. Z" X
如何调整查询以获取属于每个帖子的标签的名称和标签?. l0 u' G' ^  M2 Y2 y
谢谢你的帮助!
8 B* @' k$ d% t               
3 E+ @1 p1 [: O" b9 L解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则