2014-07-22 1 views
0

다음 웹 사이트의 뉴스 피드를 만들고 있습니다. 사용자가 올린 게시물로 내 SQL 문장에 추가 조건을 추가하는 올바른 구문이 무엇인지 궁금합니다.JOIN 문에서 MySQL 추가 조건이 발생했습니다.

그래서
 SELECT posts.* 
     FROM posts 
INNER JOIN follow 
     ON posts.uid = follow.following_id 
     WHERE follow.follower_id = '$myUser' 
    ORDER BY posts.id DESC 
     LIMIT 10 

, 어떻게 또한 $ 참고 MyUser 변수의 UID와 게시물을 보여줄 수있는 조건을 추가합니다 :이 피드에, 나는 시도 모든 것이 여기 내 현재 쿼리는 오류 가져왔다?

편집 :

테이블 구조 :

게시물 :

id | uid | message | date_posted 

추적 :

id | follower_id | following_id 
+0

현재 쿼리의 결과 집합을 공유 할 수있는 경우 언제든지 해당 쿼리를 확장 할 수 있습니다. – AdamMc331

+0

어떻게 필요한지 모르겠습니다. 모두 내가 필요한 것은 사용자가 소유 한 ID는 물론 자신이 팔로우하는 사람이있는 게시물을 반환하는 또 다른 예외를 추가하는 것입니다. – SigmaDanny

+0

아마, 나는 단지 호기심이었다. 하나의 답변을 공유했는데 where 절에서 OR 문을 시도 했습니까? – AdamMc331

답변

1
SELECT  posts.* 

FROM  posts 
INNER JOIN follow ON posts.uid = follow.following_id 

WHERE  follow.follower_id = '$myUser' 
      OR 
      posts.uid = '$myUser' 

ORDER BY posts.id DESC LIMIT 10 
+0

OR이 아닌가요? – SigmaDanny

+0

당신이 도울 수 있다면 대답으로 표시 할 수 있겠습니까? – Torrezzzz

+0

네, 그게 ... 아니면 – MattRogowski

1

그것은 어려울 것이다 예를 들어, 데이터베이스 구조에 대한 개요가 없어도 조인을 LEFT 조인으로 변경하고 포스트 테이블에서 가정 한 고유 ID를 확인하는 조건을 추가하는 것이 좋습니다. 그래서, 어쩌면 : 어딘가에있을 수 있습니다

SELECT posts.* FROM posts LEFT JOIN follow ON posts.uid = follow.following_id WHERE (follow.follower_id = '$myUser' OR posts.user_id = '$myUser') ORDER BY posts.id DESC LIMIT 10

를 시작합니다.

+0

이렇게 차이가 없어도 여전히 내가 팔로우하는 사람의 소식 만 표시하고 내 소식은 표시하지 않습니다. – SigmaDanny

+0

내가 말했듯이, 우리는 일종의 데이터베이스 구조가 필요합니다. 검색어의 두 번째 부분은 게시물을 만든 사람의 ID를 어디에 저장했는지 확인해야합니다. – MattRogowski

+0

구조와 함께 내 질문을 업데이 트하겠습니다, 나는 그것이 쿼리에서 이해할 수있을 거라 생각. – SigmaDanny

1

나는 당신이 추종자 또는 사용자의 모든 게시물을 받게됩니다 이것에 대한 OR 절을 사용하려는 믿습니다. AND를 사용하면 팔로워의 ID와 사용자가있는 게시물을 반환하며 아무 것도 반환하지 않을 수 있습니다.

그래서이 :

SELECT posts.* FROM posts INNER JOIN follow ON posts.uid = follow.following_id WHERE follow.follower_id = '$myUser' ORDER BY posts.id DESC LIMIT 10 

이 될 것입니다 :

SELECT posts.* FROM posts INNER JOIN follow ON posts.uid = follow.following_id WHERE follow.follower_id = '$myUser' OR posts.uid = '$myUser' ORDER BY posts.id DESC LIMIT 10 

불행하게도, 지금이 권리를 테스트 할 수 없습니다,하지만 난 그것을 작동하지 않을 경우 적어도 지점을하는 데 도움이되기를 바랍니다 너는 올바른 방향으로.

+0

아무런 차이가없는 것 같지만 답장을 보내 주셔서 감사합니다. – SigmaDanny

+0

죄송합니다.이 번호를 알아낼 수 없습니다. 당신이 그것에 대한 해결책을 얻는다면 알려주지 만, 나는 그것을 머리 속에서 지킬 것입니다. – AdamMc331