2014-12-11 2 views
0

토픽에 대한 게시물을 여러 개 준비한 후에도 머리 주위에 JOIN 절을 사용하는 것을 조용히 할 수 없습니다.JOIN을 통해 하나의 쿼리에서 두 개 이상의 테이블 쿼리하기

여기 내 문제가 있습니다 : 현재 2 개의 테이블이 있습니다.

사용자 테이블 :

ID | Username | Password 
1 | Micky | 123 
2 | Mouse | 145 

질문 표 :

Question ID| Question_Title | Question  | Rating | Category ID | User ID | 
    1  | Meaning of Life? | Same as Title | 100 |  2  | 1 | 
    2  | Foo is love?  | Same as Above | 95 |  4  | 2 | 

지금 나는 단순히 제목에 일치하는 항목을 찾아 사용자 ID가에 해당하는 발견 할 것이다 쿼리를 실행하려면 질문을 한 다음 사용자의 이름과 질문 제목, 질문 및 등급을 얻은 다음 인쇄하십시오.

지금까지 내가 가진 : 그것은 일치를 발견하지만 어떻게 내가 지금 가입하기 사용하는 것이 곳에는 테이블에서 나에게 질문 제목, 질문 및 평가를 얻을 것 같이

"SELECT Question_Title, Question, Rating FROM Questions WHERE Question_Title LIKE '%$Term%'"; 

이 작동하는지 그것도 것 Users 테이블에서 Username을 얻으시겠습니까?

또한 이것은 초기 구현 일 뿐이며 앞으로는 비슷한 쿼리를 필요로하는 많은 테이블을 갖게 될 것이므로 어떻게 작동하는지 이해해야합니다.

P.S : 나는이 사람들이 이처럼 많은 예제를 가지고 있음을 알고 있지만 이해하기 어려웠습니다. 그래서 여러분 중 한 분이 친절한 영혼이 그것을 털어 내고 감사 할 것이라고 설명 한다면요. 이 같은 사건에 뭔가

+0

시도/a-visual-explanation-of-sql-joins/ – Dinesh

+0

@Dinesh 지금 보시고, 감사합니다. – ShatteredPheonix

+0

@Dinesh 많은 도움을 주신 덕분에 – ShatteredPheonix

답변

0

이 밖으로 조인이의 최선의 설명 아래로 손입니다이

SELECT 
    u.username 
    q.Question_Title, 
    q.Question, 
    q.Rating 
    FROM Questions q 
    join Users u on u.id = q.userid 
    WHERE q.Question_Title LIKE '%$Term%'"; 
+0

감사합니다,이 하나는 매력처럼 작동하지만, "w"와 "u"가하는 일과 그들이 어떻게 생겼는지에 대해 약간의 설명을 할 수 있습니까? – ShatteredPheonix

+0

@ShatteredPheonix, q와 u는 테이블 별칭입니다. 기본 키와 외래 키를 사용하여 두 개 또는 테이블을 조인합니다. –

0
Select a.* from a join b on a.id=b.a_id join c on c.b_id = b.id 

: - http://blog.codinghorror.com

SELECT Question_Title, Question, Rating,user.* FROM Questions join User on user_id=id WHERE Question_Title LIKE '%$Term%'"; 
+0

남자에게 물고기를주세요. 남자에게 생선을 가르치고 평생 동안 먹이세요. :) – Dinesh

+0

이걸 시도한 후에도 아무런 이유없이 2 배의 많은 행이 인쇄되었습니다. 그래서 내 배열은 각 행을 두 번 인쇄 할 것입니다. – ShatteredPheonix

+0

그냥 user_id로 그룹을 추가하십시오 : P – BredeBS

관련 문제