ผมมีอยู่ 4 table คือ
tbl_student (stu_id,stu_name,stu_sex,major_id) ตารางนักเรียน
tbl_major (major_id,major_name) ตารางแผนกวิชา
tbl_teacher (tea_id,tea_name,tea_username,tea_pwd) ตารางครู
tbl_adviser (id,stu_id,tea_id) ตารางครูที่ปรึกษา
ระบบจะมีการให้ครูล็อกอินเข้าระบบและเก็บเซสชั่นไว้ในตัวแปร ที่ผมต้องการคือ เมื่อครูจะค้นหารายชื่อนักเรียน ระบบจะแสดงรายละเอียดของนักเรียนคนนั้นที่อยู่ในที่ปรึกษาของครูคนนี้ หรือถ้าไม่มีการค้นหา ระบบจะแสดงรายละเอียดของนักเรียนทั้งหมดที่อยู่ในที่ปรึกษาของครูคนนี้ คนที่ไม่ใช่จะไม่มีรายชื่อขึ้นมา เท่าที่ผมทำจะมีตารางเกี่ยวข้องอยู่ 4 ตารางดังข้างบนนี้ครับ ใช้การ LEFT JOIN table ที่ผมทำจะเป็นประมาณแบบนี้ อ้อ ใช้ php ในการเขียนครับ
$sql = "SELECT a.stu_id, a.stu_name, a.stu_sex, b.major_name FROM tbl_student a LEFT JOIN tbl_major b WHERE (a.major_id = b.major_id)
ส่วนการล็อกอิน ระบบจะนำชื่อ username ในการล็อกอินที่เก็บไว้ในตัวแปร นำไปเปรียบในตาราง tbl_teacher เพื่อให้ได้ tea_id ออกมา แล้วนำ tea_id ไปหาในตาราง tbl_adviser ว่า มี stu_id คนไหนบ้างที่มี tea_id คนนี้เป็๋นที่ปรึกษาอยู่ ผมว่าน่าจะ query ซ้อนกันหลายชั้นแน่เลย ผมลองทำดูแล้วยังงงๆ แต่ก็ยังทำให้ขึ้นเฉพาะรายชื่อนักเรียนที่อยู่ในที่ปรึกษาของครูคนที่ใช้งานระบบ ยังไม่ได้ครับ ขอความช่วยเหลือด้วยครับ ขอบคุณครับ..
ภาษาไทย สำหรับ phpBB เวอร์ชั่นล่าุด คือ 3.2.2
มาแล้วโหลดได้เลย
มาแล้วโหลดได้เลย
ขอความช่วยเหลือเรื่อง query ครับ..
Re: ขอความช่วยเหลือเรื่อง query ครับ..
SELECT tea.tea_name,stu.stu_name
FROM tbl_teacher tea JOIN tbl_advisor adv ON (tea.tea_id=adv.tea_id)
JOIN tbl_student stu ON (adv.stu_id=stu.stu_id)
WHERE tea.tea_username = 'username' and stu_name LIKE '%stu_var%'
ตรงนักเรียนตามนี้เลยครับ ถ้าไม่มีค่าจะออกมาหมด
ไม่สำเร็จบอกนะครับจะได้ แก้ให้
FROM tbl_teacher tea JOIN tbl_advisor adv ON (tea.tea_id=adv.tea_id)
JOIN tbl_student stu ON (adv.stu_id=stu.stu_id)
WHERE tea.tea_username = 'username' and stu_name LIKE '%stu_var%'
ตรงนักเรียนตามนี้เลยครับ ถ้าไม่มีค่าจะออกมาหมด
ไม่สำเร็จบอกนะครับจะได้ แก้ให้
ผู้ใช้งานขณะนี้
กำลังดูบอร์ดนี้: 5 และ บุคคลทั่วไป 0 ท่าน