2012-05-10 12 views
-1

ブログの作成者が特定の番号のデータベースからすべてのコメントを取得する必要があります。私のSQLクエリが正しい著者IDを使用しないことを除いて。mySQLクエリが正常に動作しない

これは私のクエリです:あなたが見ることができるように

SELECT em_comments.*, em_users.nickname 
FROM em_comments 
INNER JOIN em_posts ON em_posts.id = em_comments.post 
INNER JOIN em_users ON em_users.id = em_comments.author 
WHERE em_posts.author = 1 
ORDER BY date DESC 

、唯一のポストの著者が、私は戻って取得1.結果は4件のコメントです投稿のコメントを取得することになっていますまだデータベースから回復すべき6つのコメントがあります。

私はこのクエリは、コメントのみの作者が1となっているコメントを返しますが、投稿者がどこにあるか、それはすべての投稿のすべてのコメントを返す必要がありますいくつかの方法があるので問題は

WHERE em_posts.author = 1 

でどこかにあることを知っています1.

どのように私はこれを修正することができますかに関するアイデアがありますか?事前に

おかげで、 マーク

EDIT:

コメントテーブル構造+データ

id | post | author | date     | content 
6 7  1  2012-05-10 12:30:25  Dat weet hij zelf ook xD 
5 6  1  2012-05-10 12:30:12  yup 
1 1  1  2012-05-09 13:39:34  Whoop Whoop! Eerste comment test! xD 
2 1  1  2012-05-10 12:27:49  Nice. tweede comment werkt nu ook 
3 1  1  2012-05-10 12:29:45  Nice. tweede comment werkt nu ook 
4 1  1  2012-05-10 12:30:00  Nice. tweede comment werkt nu ook 

ポストのテーブル構造+データ

id | author | date    | content             | title  
7 1  2012-05-09 19:42:33 Mark is nog topper geworden vandaag. xD     Mark is nog cooler 
6 1  2012-05-09 19:30:27 Mark is top!            Mark 
1 1  2012-05-07 19:21:03 lol test met 'quotes' en "dubbele q...  Whoop Whoop! 

ユーザーのテーブル構造+データ

id | nickname 
1 Mark 
2 Kevin 
+3

99.99%の時間はMySQLが正しかったし、何をすべきか正確に行っています。もし私があなただったら、MySQLがあなたに間違った結果を与えていると主張する前に、あなたが何かばかげたことをしていないことを二重と三重にチェックします。あなたのテーブル構造とデータを見せて、なぜ6行が正しい結果であると思うのかを証明してください。 –

+0

また、引用符 ' –

+0

に注意してくださいそれは私に見えます。あなたは間違いなくem_comments.authorではなく、em_posts.author = 1という場所を照会しています。あなたは4つの結果の代わりに6つを持つべきであることをどのように知っていますか? –

答えて

1

内部ジョインは、ON句にNULL値を持つ行を除外します。列内の行の値を調べて、NULLが出てくるかどうかを確認します。

+0

私はNULL値をチェックしましたが、データベースのすべての列が満たされています – DijkeMark

関連する問題