2011-09-14 8 views
2

J'ai deux tables (table de questions et table de réponses).Inner Join sans doublon

Question Tableau

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

réponse Tableau

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

Quand je les enregistrements sélectionnés, les résultats sont suivants.

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 

Je souhaite supprimer l'énoncé de question en double. Je veux suivre.

What is your name? 
John 
smith 
waiyan 

how old are you? 
20 
21  
22 

Quelqu'un m'aidera à l'écrire. Je suis vraiment débutant pour mysql. Donc désolé pour mon mauvais usage de l'anglais.

Répondre

2

Le problème est dans votre code php, pas vos instructions MySQL. Vous devez seulement imprimer la question quand elle est différente de la question précédente. Il y a plusieurs manières de faire ça. Gardez à l'esprit que dans votre requête SQL, vous devez faire:

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

Pour être sûr que les réponses ne sont pas répétées pour la même question. Ensuite, faites quelque chose comme ce qui suit (grâce à @drrcknlsn pour fixer ma tentative de php):

$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

Merci pour votre answer.I essaie comme vous answer.But je ne peux pas résoudre mon problème jusqu'à présent. Pouvez-vous m'expliquer quelle variable est $ last_question = ""? Est-ce vide ($ last_question = "") ou quelque chose ($ last_question = "quelque chose")? Merci pour votre contribution. –

+0

Définissez-le sur un espace vide ou Null ou quelque chose qui ne sortira pas de la table de base de données. –

+0

Merci pour les modifications @drrcknlsn Maintenant, je vais supprimer l'auto-dépréciation et personne ne saura jamais comment mon PHP était rouillé. ;) –