2012-05-10 4 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 개의 주석이 있습니다.

나는 문제가

WHERE em_posts.author = 1 

어딘가에 것을 알고이 쿼리는 코멘트 작성자가 1. 그러나 게시물 작성자의이 모든 게시물에 대한 모든 의견을 반환해야합니다 인의 의견을 반환하는 방법을 몇 가지 때문에 1.

누구든지 해결 방법에 대한 아이디어가 있습니까? 사전에

감사합니다, 마크

편집 :

코멘트 테이블 구조 + 데이터

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 인 곳을 확실히 조회하고 있습니다. 네 가지 결과 대신 여섯 가지를 사용해야한다는 것을 어떻게 알 수 있습니까? –

답변

1

내부 조인은 ON 절에 NULL 값을 갖는 행을 제외시킵니다. 열에있는 행의 값을 확인하여 NULL이 올지 확인하십시오.

+0

NULL 값을 확인했지만 데이터베이스의 모든 열이 채워졌습니다 – DijkeMark

관련 문제