2016-03-27 19 views
-1

質問と回答(複数選択肢)テーブルがあります。回答テーブルには、質問IDと回答ID(固有IDではない)の両方が含まれています。複数のINコレクションを含むクエリをMySQLのWhere句で選択します。

は回答テーブルを参照してください。

QID  AID  Answer 
_______________________________ 
1   1   Good 
1   2   Very Good 
1   3   Excellent 
2   1   Delhi 
2   2   Mumbai 
2   3   Chennai 
2   4   Kolkata 

質問1(QID)のために答えるユーザー2(AID)であり、質問2(QID)が3(AID)です。

私は主キーを持っていない

SELECT the Answer "Very Good" (1 -> 2) and "Chennai" (2 -> 3).

(QID -> AID) => {(1 -> 2), (2 -> 3), .... n} sets 

する必要があります。この表の構造内で私の選択を達成する方法は?親切に私を助ける...

+0

の下にこれを試してみてください?記録を取得する条件は何ですか? – Thiyagesan

+0

選択されたユーザ(QID→AID)=> {(1→2)、(2→3)}}セット。私はレコードを選択する必要があります。セットで述べたように。 –

答えて

0

は、あなたの質問は、あなたがそのテーブルから取得しようとするもの、明らかではないが、クエリ

// example array 
$user_selected_array=array(
    0=>array(1,2), 
    1=>array(2,3) 
); 
$WHERE=''; 
foreach($user_selected_array as $key=>$val) { 
    $WHERE .= ($WHERE!='')?" OR ":""; 
    $WHERE .= "(QID=$val[0] AND AID=$val[1])"; 
} 

SELECT Answer FROM AnswerTable WHERE $WHERE 
+0

'Answer 'を' * 'に置き換えてすべてのフィールドを得ることができます – Thiyagesan

+0

WHERE句をどのように構築するのですか? –

+0

ユーザー選択を配列として使用している場合は、foreachを使用してWHERE句を作成できます – Thiyagesan

関連する問題