2011-09-14 9 views
2

나는 두 개의 테이블 (질문 테이블 및 응답 테이블)을 가지고 있습니다.내부 중복 레코드가없는 레코드

내가 기록을 선택 질문 표

id question 
1 what is your name? 
2 how old are you? 

응답 표

id answer questionid 
1 john  1 
2 smith 1 
3 waiyan 1 
4 20  2 
5 21  2 
6 22  2 

, 그 결과는 다음입니다.

SELECT * FROM question INNER JOIN answer on questionid= question.id 

what is your name? 
john 
what is your name? 
smith 
what is your name? 
waiyan 
how old are you? 
20 
how old are you? 
21 
how old are you? 
22 

중복되는 질문문을 삭제하고 싶습니다. 다음과 같이하고 싶습니다.

What is your name? 
John 
smith 
waiyan 

how old are you? 
20 
21  
22 

제발 누군가가 나를 쓰는 방법을 알려주십시오. 저는 정말 mysql을 초보자입니다. 나쁜 영어 사용에 대한 죄송합니다.

답변

2

문제는 귀하의 MySQL 코드가 아니라 PHP 코드에 있습니다. 이전 질문과 다른 경우에만 질문을 인쇄해야합니다. 이를 수행 할 수있는 방법이 많이 있습니다. SQL 쿼리에서 다음을 수행해야합니다.

SELECT * FROM question INNER JOIN answer 
    on questionid= question.id 
    order by question.id 

동일한 질문에 대한 답변이 반복되지 않도록하십시오. 그런 다음 (PHP에서 내 시도를 고정 @drrcknlsn, 감사)은 다음과 같은 것을 할 : 당신이 answer.But 나는 지금까지 내 문제를 해결할 수로의 대답에 대한

$last_question = ""; 
foreach ($results as $row) { 
    if ($last_question !== $row["question.question"]) { 
     echo $row["question.question"]; 
    } 
    echo $row["answer.answer"]; 
    $last_question = $row["question.question"]; 
} 
+0

감사가 노력하고 있습니다. 어떤 변수가 $ last_question = ""이라고 설명 할 수 있습니까? 그것은 비어 있습니까 ($ last_question = "") 또는 무언가 ($ last_question = "something")? 기고에 감사드립니다. –

+0

공백 또는 Null 또는 데이터베이스 테이블에서 나오지 않는 항목으로 설정하십시오. –

+0

편집 해 주셔서 감사합니다. @drrcknlsn 이제 자기 비추천을 삭제하고 아무도 내 PHP가 얼마나 녹슬 었는지 알 수 없습니다. ;) –

관련 문제