2016-03-25 4 views
1

私は、コードがこれを下回るMySQLのクエリが含まれています。私はこのように見えるようにクエリを残すstud_idを削除する場合:選択する特定のデータは

 SELECT stud_fname, 
       stud_sname, 
       result_studpoints, 
       result_position, 
       studevent_result 
     FROM 
      students s 
       INNER JOIN 
      result r on 
      s.stud_id = r.stud_id 
     WHERE 
      stud_gender = '$gender' 
     AND stud_yrgroup = '$yrGroup' 
     AND r.event_id = '$event' 

それは動作しますが、どのようにクエリは、出力があまりにもstud_idするように変更することができますか?

ありがとうございます。

答えて

2

stud_idはご質問にあいまいです。具体的には、フィールドを作成します(意味):

SELECT s.stud_id, 
      stud_fname, 
      stud_sname, 
      result_studpoints, 
      result_position, 
      studevent_result 
    FROM 
     students s 
      INNER JOIN 
     result r on 
     s.stud_id = r.stud_id 
    WHERE 
     stud_gender = '$gender' 
    AND stud_yrgroup = '$yrGroup' 
    AND r.event_id = '$event' 

EDIT: より便利な結果のために、私はいくつかの選択したフィールドのエイリアスを使用することをお勧めフェッチ:

SELECT s.stud_id AS student_id, 
     .... 

データ例をフェッチ( PHPの場合):

... 
while ($data = mysqli_fetch_assoc($result)) { 
    $studId = $data['student_id']; 
    echo $studId; 
} 
... 
+0

おかげで、そのときに私の出力結果なので、このような出力I: 'しばらく($データ= mysqli_fetch_assoc($結果)){ $ studId = $ data ['s.stud_id']; echo $ studId; } ' – SubZero

+0

@SubZero、私の編集を確認してください – RomanPerekhrest

+0

@RomanPerekherstこれはありがとうございました:) – SubZero

0

おそらく、列名があいまいなのでこのエラーが発生する可能性があります結果を表示する表を指定します。例えば、テーブルの短い名前で列名を接頭辞にしてください。:

SELECT s.stud_id, 
     stud_fname, 
     stud_sname, 
     result_studpoints, 
     result_position, 
     studevent_result 
FROM 
    students s 
     INNER JOIN 
    result r on 
    s.stud_id = r.stud_id 
WHERE 
    stud_gender = '$gender' 
AND stud_yrgroup = '$yrGroup' 
AND r.event_id = '$event' 
0

stud_id両方studentsresultテーブルに設定フィールドです。そのデータを取得するようにデータベースに依頼するとき、どの値を選択するかはわかりません。それはそのデータを取るべきテーブルから指定するだけで十分です:

SELECT s.stud_id. 
     stud_fname, 
     stud_sname, 
     result_studpoints, 
     result_position, 
     ìstudevent_result 
FROM 
     students s 
INNER JOIN 
     result r on 
     s.stud_id = r.stud_id 
WHERE 
    stud_gender = '$gender' 
AND stud_yrgroup = '$yrGroup' 
AND r.event_id = '$event' 
0

stud_idがあいまいである - それはstudentsresultテーブルの両方に存在します。ただ、表の別名で修飾し、あなたは問題ないはずです。

SELECT s.stud_fname, 
-- Here -^ 
     stud_sname, 
     result_studpoints, 
     result_position, 
     studevent_result 
FROM 
    students s 
INNER JOIN 
    result r ON s.stud_id = r.stud_id 
WHERE 
    stud_gender = '$gender' 
AND stud_yrgroup = '$yrGroup' 
AND r.event_id = '$event' 
関連する問題