MYSQL连接查询不起作用

时间:2013-05-08 11:17:58

标签: php mysql

我有两个名为

的mysql表
  1. 博客

  2. 评论

  3. 我想要检索以下列  使用blog_id从评论表中user_name comment_desc

    这两个表都有blog_id的共同点。

    下面是两个sql表的截图

    评论表: comment table

    博客表: blog table

    我用这种方式尝试了查询。

    SELECT blog.blog_id, comment.user_name, comment.comment_desc 
        FROM 
            blog (b) 
        INNER JOIN 
            comment (c)
            ON b.blog_id = c.blog_id
    

    我没有权限上传图片,这就是我上传到photobucket的原因。

    PHP代码......

    <?php
    
                            $comments_set = blog_comments();
                            var_dump($comments_set);
                            while($comments_all = mysql_fetch_assoc($comments_set)){
                                $name = $comments_all['user_name'];
                                $desc = $comments_all['comment_desc'];
                                echo                    
                                "<ol class=\"commentlist clearfix\">
    
                                    <li class=\"comment even thread-even depth-1\" id=\"li-comment-1\">
    
                                        <div id=\"comment-1\" class=\"comment-wrap clearfix\">
    
                                            <div class=\"comment-meta\">
    
                                                <div class=\"comment-author vcard\">
    
                                                    <span class=\"comment-avatar clearfix\">
                                                    <img alt='' src='http://0.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=60' class='avatar avatar-60 photo avatar-default' height='60' width='60' /></span>
    
                                                </div>
    
                                            </div>
    
                                            <div class=\"comment-content clearfix\">
    
                                                <div class=\"comment-author\">$name<span><a href=\"#\" title=\"Permalink to this comment\">January 24, 2013 at 10:46 am</a> &middot; <a class='comment-reply-link' href=\"#\">Reply</a></span></div>
    
                                                <p>$desc</p>
    
    
                                            </div>
    
                                        </div>
    
    
                                    </li>
    
    
    
                                </ol>
                                ";
                            }
                                ?>
    

4 个答案:

答案 0 :(得分:1)

user_namedesccomment需要blog_ig

为什么你需要加入这两个表呢?您可以通过博客ID

从评论表中检索信息

select * from comments where blog_id='blog_id'

答案 1 :(得分:0)

我认为你应该选择Left Join,因为可能你想要显示博客是否有评论。

SELECT b.blog_id, c.user_name, c.comment_desc 
    FROM 
        blog as b
    LEFT JOIN 
        comment as c
        ON b.blog_id = c.blog_id

答案 2 :(得分:0)

您正在使用别名,因此在SELECT语句时,请通过别名指定它。您需要删除别名名称旁边的括号...

SELECT b.blog_id, c.user_name, c.comment_desc 
    FROM 
        blog b 
    INNER JOIN 
        comment c
        ON b.blog_id = c.blog_id

答案 3 :(得分:0)

我认为您错误地定义了blog_id列。请检查列的数据类型和大小。 连接表时会失败。 如果您可以粘贴错误,那将会更有帮助

感谢。