使用将一个表连接到自身并连接另一个表

问题描述 投票:0回答:1

我有两张桌子,如下图所示:

用户表:

enter image description here

报价_评论

enter image description here

offer_comments
表存储评论和评论的答案。 通过使用下面的功能,我可以根据
$id
获取评论并回答评论。

function getCommentsAnItem($id){

    mysql_query("SET CHARACTER SET utf8");
    $result_comments = mysql_query("select e.comment as comment,m.comment as answer_to_comment 
    from offer_comments e 
    inner join offer_comments m on e.id = m.quet 
    where e.offer_id=$id and e.confirm=1");
    $comments = array();
    while($a_comment=mysql_fetch_object($result_comments)){

        $comment = array(
        'comment'=>$a_comment->comment,
        'answer'=>$a_comment->answer_to_comment
        );
        array_push($comments,$comment);
    }

    return $comments ;
}

如何根据

name
表中的
family
users
表中获取
user_id
offer_comments


更新:

admin 是 user_id 等于 = 1 的地方。

user_id 14690
是用户并给他留下评论和管理员答案。

enter image description here

users
表中: enter image description here

我想获得一系列评论并根据 $id 回复评论:

"comment=>how a u ?","answer=> I am fine","comment.name=>name","comment.family=>family"
sql mysql join
1个回答
2
投票

将您的用户表与当前查询连接起来,并使用别名为

offer_comments
m
,这样它将显示属于
m.comment
或添加
m.comment
的用户的姓名和家庭,如果您想显示用户的
offer_comments
别名为
e
然后加入
e.user_id

SELECT 
  e.comment AS `comment`,
  m.comment AS answer_to_comment,
  u.name,
  u.family 
FROM
  offer_comments e 
  INNER JOIN offer_comments m 
    ON e.id = m.quet 
  INNER JOIN users s 
    ON s.id = m.user_id 
WHERE e.offer_id = $id 
  AND e.confirm = 1 
© www.soinside.com 2019 - 2024. All rights reserved.