2

現在、私はこのmysqlを持っています:

$result = mysql_query("SELECT blog.id, blog_comments.cid, blog.name,
  blog.blogtext, blog.date, blog.like, blog.dislike, blog_comments.comment, blog_comments.date
FROM blog, blog_comments  
WHERE blog.id = blog_comments.cid   
ORDER BY blog.id DESC LIMIT 30")

クエリは行とそのコメントを返します。問題は、コメントのある行のみを返し、コメントのない行は返さないことです。いくつかのトピックを見つけて、おそらく を使用する必要があることを発見しましたFULL OUTER JOIN。今、私はこれを適用しようとしました、不在の成功。

支援は大歓迎です

4

1 に答える 1

3

暗黙的な結合 (コンマ区切りのテーブルのリストは を生成しますINNER JOIN) ではなく、明示的な を使用しますLEFT JOIN

SELECT 
  blog.id,
  blog_comments.cid,
  blog.name,
  blog.blogtext,
  blog.date, 
  blog.like, 
  blog.dislike, 
  blog_comments.comment, 
  blog_comments.date
FROM 
 blog
 /* LEFT JOIN will return rows from blog (the "left" side of the join) even if no 
    related rows exist in blog_comments (the "right" side of the join) */
 LEFT JOIN blog_comments ON blog.id = blog_comments.cid   
ORDER BY blog.id DESC
LIMIT 30
于 2012-08-12T22:25:11.883 に答える