2013-01-11 2 views
3

조인을 사용하여 쿼리를 수행하는 방법. 나는 데이터베이스에 새로운 사람이다. 이 쿼리가 잘 작동 .. 하지만 난 조인을 사용하여 쿼리 구체화

$query = "SELECT student_id 
FROM students 
WHERE student_id 
IN (
    SELECT student_id 
    FROM class_students 
    WHERE class_id 
     IN (
      SELECT class_id 
      FROM class_course 
      WHERE teacher_id =". $_SESSION['teacher_id']."))"; 

IN를 사용

+0

예. JOIN을 참조하십시오. 그것이 바로 그들이 원하는 것입니다. – Strawberry

+0

다음은 ['join '(http://www.w3schools.com/sql/sql_join.asp) 및 [시각적 표현] (http://www.codeproject.com/Articles/33052/)에 대한 simport 자습서입니다. 시각적 표현 - SQL 조인) – bonCodigo

답변

5

적절한로 변환 할 수있다 할 anyother 방법이 더 rubust 그것을 만들고 싶어 조인 :

SELECT s.student_id 
FROM students s 
JOIN class_students cs ON cs.student_id = s.student_id 
JOIN class_course c ON c.class_id = cs.class_id 
WHERE teacher_id = ? 

질문에 답하는 SQL 만 남기 위해 (관련없는) 응용 프로그램 언어 특성 (perl?)을 제거했습니다.

1
$query = "select students.student_id 
from class_course left outer join class_students on 
     class_course.class_id = class_students.class_id 
    left outer join students on 
     class_students.student_id = students.student_id 
where class_course.teacher_id = ". $_SESSION['teacher_id'] 
1
$query = "SELECT s.student_id 
FROM students s 
    INNER JOIN class_students cs 
     ON s.student_id = cs.student_id 
    INNER JOIN class_course cc 
     ON cs.class_id = cc.class_id 
      AND cc.teacher_id =". $_SESSION['teacher_id'].")) 
관련 문제