2017-12-07 10 views
1
select student.student_fname, 
student.student_mname, 
student.student_lname, logs.time, logs.transaction,logs.entity_type,prof.professor_fname,prof.professor_mname,prof.professor_lname 
from student_tbl as student, 
logs_tbl as logs, 
professor_tbl as prof 
where student.student_id=logs.entity_id 
and prof.professor_id=logs.entity_id 
and logs.date ='$date_today' 
and logs.course_id='$course' 
and logs.sections_id='$sections' 
and logs.rooms_id='$room' 
group by logs.date, 
logs.term, 
logs.course_id, 
logs.entity_id 
order by logs.logs_id asc 

student_tblとprofessor_tblにはstudent_idとprofessor_idがありますが、これはlogs_tblのentity_idと同じです。異なるテーブルの2つのidをlogs_tblのentity_idとどのように比較すればよいですか?それは私にエラーを与えている唯一の行です。多分あなたは提案がありますか? STUDENT_ID、student_fname、student_mname、student_lname:脇SQLインジェクションのものから別のテーブルから2つの異なるIDを等しくするには?

UPDATE

私はstudent_tblがある列を持っています。私もprofessor_tblとそこに列があります:professor_id、professor_fname、professor_mname、professor_lname、そして私のすべての基礎を持つ私の3番目のテーブルはlog_tblの列です:entity_id(これはstudent_idとprofessor_idが等しくなります) 、course_id、rooms_id、sections_id、時刻、日付、トランザクション、エンティティタイプ。 これは私が表示したいものです。

  • student_fname/professor_fnameを
  • student_mname/professor_mname(ENTITY_IDに依存する)(ENTITY_IDに応じて)
  • student_lname/professor_lname(ENTITY_IDに応じて)
  • 時間
  • 取引
  • ENTITY_TYPE

サンプルデータ表示:

  • クリス|コンスタ|ロカ| 11:30 | |学生
  • ボブ|ジョーンズ|マーリー| 11:32 | |学生
  • Ronald |ジェームス|レオン| 11:35 | |教授
    • クリス|コンスタ|ロカ| 1:00 |アウト|学生
  • ボブ|ジョーンズ|マーリー| 1:05 |アウト|学生
  • Ronald |ジェームス|レオン| 1:06 |アウト|教授
+0

https://dev.mysql.com/doc/refman/5.7/en/join.html – urfusion

+0

あなたが参加し、それらを使用について読みする必要があります: - [MySQLの5.7リファレンスマニュアル/ ... /登録しよう構文](https://dev.mysql.com/doc/refman/5.7/en/join.html) –

+0

テーブルを結合するために私のクエリが機能していますが、今度は2つのIDを1つのIDに一致させているので、今度は – ulyk

答えて

3
select student.student_fname, student.student_mname, student.student_lname, logs.time, logs.transaction,logs.entity_type 
      from student_tbl as student inner join logs_tbl as logs on student.student_id=logs.entity_id 
    where logs.date ='$date_today' 
       and logs.course_id='$course' 
       and logs.sections_id='$sections' 
       and logs.rooms_id='$room' 
       group by logs.date, logs.term, 
       logs.course_id, 
       logs.entity_id 


    UNION 

     select prof.professor_fname,prof.professor_mname,prof.professor_lname , logs.time, logs.transaction,logs.entity_type 
      from professor_tbl as prof inner join logs_tbl as logs on prof.professor_id=logs.entity_id 
      where logs.date ='$date_today' 
       and logs.course_id='$course' 
       and logs.sections_id='$sections' 
       and logs.rooms_id='$room' 
       group by logs.date, logs.term, 
       logs.course_id, 
       logs.entity_id 
+0

0行を返します。私は私の質問を更新できますか? – ulyk

+0

実際に私たちはテーブルのデータを知らないので、データがあればそれを送信することができます。または、あなたの質問を更新する必要があります。@ulyk –

+0

私の質問を更新しました。私はテーブルに参加することについての私の貧しい人々の理解のために非常に残念です – ulyk

0
select student.student_fname,student.student_mname,student.student_lname, logs.time, logs.transaction,logs.entity_type,prof.professor_fname,prof.professor_mname,prof.professor_lname 
from student_tbl as student 
join logs_tbl as logs on student.student_id=logs.entity_id and logs.date ='$date_today' and logs.course_id='$course' and logs.sections_id='$sections' and logs.rooms_id='$room' 
join professor_tbl as prof on prof.professor_id=logs.entity_id 
group by logs.date, logs.term, logs.course_id, logs.entity_id 
order by logs.logs_id asc 

あなたはjoinを使用してそれを行うことができます。

+0

0行を返します。私は私の質問を更新できますか? – ulyk

+0

はい私はより良い方法で答えることができます。 –

+0

私の質問を更新しました。テーブルに参加することについての私の貧弱な理解に非常に残念です。 – ulyk

関連する問題