ช่วยดู sql หลายตารางเชื่อมกัน หน่อยครับ ผิดตรงไหน
ประกอบด้วยตาราง
class
CLID int(5)
CLName varchar(20)
TID int(5)
student
SID int(5)
CLID int(5)
SFirstName varchar(25)
SLastName varchar(25)
Gender varchar(10)
SStatus tinyint(1) // จะทำสถานะ ใช่หรือไม่ใช่ ไม่ร้เลือกตัวนี้หรือป่าว
teacher
TID int(5)
DID int(5)
TFirstName varchar(30)
TLastName varchar(30)
Gender varchar(10)
TStatus tinyint(1)
subject
SubjectID varchar(20)
SubjectName varchar(20)
DID int(5)
course
CSID int(5)
SMID int(5)
SubjectID varchar(20)
FullScore int(5)
course_student
CSID int(5)
SID int(5)
AccScore int(5)
MidScore int(5)
FinalScore int(5)
TotalScore int(5)
Grade int(5)
ที่อยากจะให้แสดงก็คือ
SID, CLName, SFirstName, SLastName, SubjectID, SubjectName, AcedermicYear, semester, Grade
//รหัสนักเรียน ห้อง ชื่อ นามสกุล รหัสวิชา ชื่อวิชา ปีการศึกษา ภาคเรียนที่ ผลการเรียน
เลยเขียน sql ไปแบบนี้
Code
$sql = "select student.SID, class.CLName, student.SFirstName, student.SLastName, subject.SubjectID, subject.SubjectName, semester.AcedermicYear, semester.semester, course_student.Grade from student, class, teacher, subject, course, course_student where student.SID = course_student.SID AND class.CLID = student.CLID AND subject.SubjectID = course.SubjectID AND course.SMID = semester.SMID";
ผลก็ไม่ออกมา ขึ้น
Error
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource
คิดว่าผิดตรง sql แต่ไม่รู้จะทำยังไง ใครก็ได้ช่วยที
ขอบคุณล่วงหน้าๆครับTag : PHP
Date :
2011-06-04 22:50:40
By :
sql new
View :
1135
Reply :
5
select มันควรเป็น
select field from table where ... ไม่ใช่เหรอครับ
ในกรณีเลือกหลายๆตารางให้ใช้ join ต่างๆแทนครับ ไม่ใช่แบบนี้
มันมี inner join, left join, right join...
ตย.
select * from class as t1
inner join student as t2 on t1.CLID = t2.CLID
ลองดูตัวอย่างจากเว็บ mysql
http://dev.mysql.com/doc/refman/5.0/en/join.html
Date :
2011-06-04 23:25:29
By :
mr.v
ขอบคุณครับ คุณ vee และ Error ตลอดๆ
ขอเวลาไปทำความเข้าใจใหม่ก่อนครับ เหอะๆ งง T^T
Date :
2011-06-05 01:27:40
By :
sql new
หาโปรแกรมช่วย query ไม่ดีกว่าเหรอครับ
อย่างผมใช้ Navicat ครับ
ง่ายไม่ต้องเขียน query เอง แค่สร้าง tabal แล้วก็โยงความสัมพันธ์ แล้วก็เลือก ฟิลด์ ที่ต้องการแสดง
แล้วโปรแกรมมันจะเขียน query ให้เองครับ ง่ายมากๆ ดีกว่าไปนั่งไล่ code เหนื่อยป่าวๆ ประหยัดเวลาด้วย
Date :
2011-06-05 11:59:25
By :
slurpee55555
Load balance : Server 04