5

こんにちは、現在このコードを使用しています

   $qry_display = "
SELECT 
    student_id,
    fname,
    sex,
    lname,
    mname,
    level,
    photo,
    birth_date,
    birth_place,
    address,
    father,
    father_occupation,
    father_phone,
    father_company,
    father_degree,
    mother,
    mother_occupation,
    mother_phone,
    mother_company,
    mother_degree,
    adviser_id 
from 
    tbl_enroll 
where 
    student_id='$id' 
    AND level='$lvl'

";
    $sql_display = mysql_query($qry_display) or die (mysql_error());

上記のコードは、ほとんどのデータをtbl_enrollからフェッチします。ここで、 tbl_erでいくつかのデータを取得したいと考えています 。tbl_enrolltbl_erは Student_id の主キーで接続され、tbl_sectionにも一度接続されますtbl_ertbl_sectionは、section_id の外部キーで接続されます。

これまでのところ、複数の SQL クエリを実行して 1 つの mysql_query トリガーを使用することを考えていましたが、トリガーが 3 つの SQL クエリで機能しないため、機能しません。

4

5 に答える 5

8

ちょうどJOIN3つのテーブル:

SELECT t1.*, t2.*, t3.*
from tbl_enroll t1
JOIN tbl_el t2 ON t1.student_id = t2.student_id
JOIN tbl_section t3 ON t2.section_id = t3.section_id
where student_id='$id' AND a.level='$lvl'
于 2012-09-05T11:47:28.683 に答える
6

テーブルを結合する必要があります。これはphpについてではなく、sqlについてです。

于 2012-09-05T11:44:43.053 に答える
2
   SELECT te.XXX,tr.YYYY,ts.ZZZ, ..... 
   from tbl_enroll te 
   inner join tbl_er tr on tr.student_id = te.student_id
   inner join tbl_section ts on ts.section_id = te.section_id
   where student_id='$id' and level='$lvl';

クエリの開始時に、te、tr、またはtsから任意のフィールドを選択します。クエリの実行時にあいまいな参照がないように、フィールドの前にte、tr、またはtsを付けることを忘れないでください;)

于 2012-09-05T11:47:34.210 に答える
2

次のsystaxで試すことができます

select tb1.filds,tb2.fields ... from table1 as tb1, table2 as tb2 .. where tb1.id = tb2.id and tb2.id  = tb3.id ...

どこの状態で正しくチェックする必要があります。

それ以外の場合は、結合クエリを使用できます..結合クエリの方が優れています

于 2012-09-05T11:49:56.337 に答える
1
Combining two queries..

SELECT t1.* FROM tbl_er as t1, tbl_enroll as t2
WHERE t1.student_id= t2.student_id ORDER BY id DESC

両方のテーブルで学生IDを定義する必要があります。

于 2012-09-05T11:47:10.240 に答える