2011-09-14 28 views
2

私は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私が今まで私の問題を解決することはできませんようごanswer.Iため

$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のさびしさを知ることはありません。 ;) –