2016-04-06 5 views
0

を使用して、同じクエリに複数のテーブルから選択すると、親切に私は愚かに見える場合、私は、PHPのMySQLは、PHPのMySQL

に初心者です完全に3つのテーブル

学生、クラス、親

がある私を許し

私は今親のユーザーに取り組んでいます。

s_id s_name parent_id s_class_id 

1  name1  40   20 

クラス表:

親として、私は

  1. 彼らのクラス

学生表を勉強私の学生以下のようにいくつかのものを表示したいです

c_id c_name 

20  Ten 

親表:

p_id p_name 

40  Parent1 

私の第一タスク1」上述したように。私の学生は、私が$update idがどこから来るか私はすでに

を次のように上記のそれは数コードを行って、考えているすべての人のために

$row['s_name'] 

を表示することで、次のクエリ

"SELECT * FROM student where parent_id='$update_id' " 

に成功し、「勉強します

$update_id = $login_type['p_id']; 

ここで、$login_typeセッションから取得しています

今、私は2番目の仕事、「2。彼らのクラス "

私はそれが私が今何をすることができます別の選択クエリとしてしたく​​ない、私はそれが上の同じ選択にしたい。親切に私にしてください仲間を助ける。

を私はあなたがまだ任意の明確化を持っている場合は、親切に私に尋ねる、私はできる限り最大を説明しようとした。

+1

結合クエリを使用します。 –

+1

'SELECT s。*、c.c_name from student s INNER JOINクラスc ON(s.s_class_id = c.cid)ここで、s.parent_id = '$ update_id'' – sagi

答えて

1

あなたが複数のテーブルからの結果を得るためにjoinを使用する必要があります。 あなたのクエリは次のようになります。

SELECT * FROM student 
    JOIN class 
    ON class.c_id = student.s_class_id 
    WHERE parent_id='$update_id' 

あなたがここにmysqlのjoin詳細を読むことができます:http://dev.mysql.com/doc/refman/5.7/en/join.html

+0

本当ですか?この有効なMySQL構文ですか? – sagi

+0

@DanielDudasありがとう、これは魅力的な仲間のように働いた。ところで、私は 'join 'ドキュメンテーションを参照しています。 –

+0

@sagiこれは有効なMySQL構文のメイトではありませんか?親切に私を助けてください。私はこの構文で完全に出力を得ているので、私は尋ねています。しかし、もしこれが有効な構文ではないと感じたら、私が正しく学習するように、構文の修正を私に更新してください。私の意図は、出力ではなく正しい構文メイトです。 –

1
SELECT * FROM student 
INNER JOIN class ON class.c_id = student.s_class_id 
WHERE parent_id = '$update_id' 

あなたはこのようmysqljoinクエリを使用することができますし、

に学生のクラス名を取得することができます
$row['c_name'] 
1

この1つのSELECTでは、 'student'と 'c'のすべてのデータを取得できますJOINを使用してparent_id = '$ update_id'の学生に関連する「lass」を追加しました。すでに使用するのと同じ方法で使用し、データにアクセスするには

SELECT * FROM student 
LEFT JOIN class ON s_class_id=c_id 
WHERE parent_id='$update_id' 

echo $row['s_name']; 
echo $row['c_name']; 
// ..and so on for other fields. 

を[編集:参加するためにLEFTを追加し、あなたがいずれかを持っていないものも含め、すべての学生からデータを取得するように、割り当てられたクラス。 INNER JOIN(またはJOIN 'only')を使用すると、クラスなしの生徒の行が欠落します。