2012-08-23 2 views
0

안녕하십니까. 관리자가 볼 수있는 학생용 검색 페이지가 있습니다. 학생 기록에 lname_A 인 상담원의 성을 표시하는 데 문제가 있습니다. 이것은 현재까지 우리가 지금까지 우리가 lname_a를 얻을 수 없다는 것을 제외하고는 모든 것이 괜찮다는 코드입니다.SQL Multi Innerjoin

$qry_display = "SELECT 
     a.student_id, a.section_id, a.level, a.photo, a.address, a.father_occupation, a.father_phone, a.father_company, a.mother_occupation, a.mother_phone, a.mother_company,a.gpa, 
     b.fname, b.sex, b.lname, b.mname, b.birth_date, b.birth_place, b.address, b.father, b.father_degree, b.mother, b.mother_degree, 
     c.section_name, d.adviser_id , d.lname_a 
     FROM tbl_er AS a 
     LEFT OUTER JOIN tbl_enroll AS b ON a.student_id = b.student_id 
     LEFT OUTER JOIN tbl_section AS c ON a.section_id = c.section_id 
     LEFT OUTER JOIN tbl_adviser AS d ON a.section_id = d.adviser_id 
     WHERE a.student_id=".$id." AND a.level='Grade 2'"; 

어떤 도움을 주셔서 감사 기꺼이겠습니까.

+0

미안하지만 나는 그 이름이 비어있는 것을 보여줄 수 없다. –

+0

d.adviser 및 lname_a의 공백 값이 비어 있지 않습니다. –

+0

단계별로 구성하십시오. SELECT * FROM tbl_er where student_id = ". $ id."AND level = 'Grade 2' "'너를 줘? 그런 다음 작동하지 않는 것으로 보이는 왼쪽 결합을 추가하십시오. 단계별로 살펴보면 어디에서 깨지는 지 확인할 수 있습니다. 그런 다음 쿼리의 해당 부분이나 조인 할 데이터를 확인하여 실제로 존재한다고 생각되는 데이터가 있는지 확인해야합니다. – MatBailie

답변

4

두 테이블 또는 올바른 열을 모두 가입 하시겠습니까? a.section_id = d.adviser_id

0

모든 학생에게 고문이있는 경우 왼쪽 외부 조인보다는 내부 조인을 사용해야합니다.

왼쪽 외부 결합을 사용하면 학생에게 고문이 없을 때 lname_a가 비어있을 수 있습니다.