2013-05-08 88 views
0

我有一個名爲MYSQL連接查詢不工作

2個MySQL表
  1. 博客

  2. 評論

什麼,我試圖做檢索以下列 user_namecomment_desc從評論表使用blog_id。

這兩個表都具有相同的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> 
          "; 
         } 
          ?> 
+0

爲什麼查詢不起作用?你有錯誤嗎? – Taryn 2013-05-08 11:20:33

+0

其實你可以在這裏發佈控制檯輸出的輸出(例如'DESC blog')。 – Raptor 2013-05-08 11:20:33

+1

@shin,32和34個blog_ids都在這兩個表中。 – 2013-05-08 11:22:44

回答

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 
1

你需要user_namedescblog_ig

爲什麼你需要加入這兩個表,然後comment表?您可以通過博客ID

select * from comments where blog_id='blog_id'

+0

兩者都有兩個公共字段,即blog_id。所以特定的評論是針對某個特定的博客。 – 2013-05-08 11:30:49

+0

Ahad Bhai,無論哪種方式,你不得不提到blog_id,或者lef join可以是這裏的好選擇,你試過了嗎? – user2362083 2013-05-08 11:33:50

+0

我將INNER JOIN更改爲LEFT JOIN,但它仍然不能正常工作 – 2013-05-08 11:38:01

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 
+0

仍然存在問題。 – 2013-05-08 11:29:56

+0

究竟你在結果集中得到了什麼? – 2013-05-08 11:31:59

0

我認爲您錯誤地定義了blog_id列。請檢查列的數據類型和大小。 連接表時會失敗。 如果你可以粘貼錯誤,它會更有幫助

謝謝。

+0

警告:mysql_fetch_assoc()期望參數1是資源,布爾值在C:\ xampp \ htdocs \ projects \新建smartbakhtar \ blog-single.php在線187 – 2013-05-08 11:33:01

+0

首先檢查查詢是否在mysql服務器上運行。我認爲你有SQL錯誤,然後將被打印。 – 2013-05-08 11:34:25

+0

這個php錯誤發生在空對象返回時。你在sql代碼中出錯。它不返回結果。你沒有使用PHP代碼運行這個SQL?在phpmyadmin中試試這個。然後你可以看到mysql錯誤。 – cha 2013-05-08 11:35:55