พี่ช่วยดูให้หน่อยว่าหนูqueryผิดป่าวเนี่ย
ทามไมใช้MINUS , NOT IN ไม่ได้ซะตัวค่ามานไม่ออกเลยอะ
แต่ตอนใช้ EXCEPTของMSSQLทามไมมานได้อะ
Code (PHP)
$result = mysql_query(" select Name_Sc,Name_Tc,Requirement.ID_Sc,Requirement.ID_Tc
from School,Teacher,Requirement
where School.ID_Sc = Requirement.ID_Sc and Teacher.ID_Tc = Requirement.ID_Tc and Requirement.Re_Status = 'connect' NOT IN
(select Name_Sc,Name_Tc,Requirement.ID_Sc,Requirement.ID_Tc
from School,Teacher,Requirement,Promise
where School.ID_Sc = Requirement.ID_Sc and Teacher.ID_Tc = Requirement.ID_Tc and Requirement.Re_Status = 'connect' and Requirement.ID_Sc = Promise.ID_Sc and Requirement.ID_Tc = Promise.ID_Tc)");
คือ not in ความหมายคือ อยู่ใน a ไม่มอยู่ใน b
เพราะฉนั้น ก็ต้องระบุฟิว อะไรที่อยู่ใน a และไม่อยู่ใน b นะครับ
Code
$result = mysql_query(" select Name_Sc,Name_Tc,Requirement.ID_Sc,Requirement.ID_Tc
from School,Teacher,Requirement
where School.ID_Sc = Requirement.ID_Sc and Teacher.ID_Tc = Requirement.ID_Tc and Requirement.Re_Status = 'connect' NOT IN
(select Requirement.ID_Sc
from School,Teacher,Requirement,Promise
where School.ID_Sc = Requirement.ID_Sc and Teacher.ID_Tc = Requirement.ID_Tc and Requirement.Re_Status = 'connect' and Requirement.ID_Sc = Promise.ID_Sc and Requirement.ID_Tc = Promise.ID_Tc)");
แล้วถ้าใช้ not in แบบนี้ถูกป่าวค่ะ
แต่ใช้แล้วค่าไม่ออกอะ Code (PHP)
$result = mysql_query("SELECT Name_Sc,Name_Tc,Requirement.ID_Sc,Requirement.ID_Tc
FROM School,Teacher,Requirement
WHERE School.ID_Sc = Requirement.ID_Sc and Teacher.ID_Tc = Requirement.ID_Tc and Requirement.Re_Status = 'connect'
AND NOT Requirement.ID_Sc,Requirement.ID_Tc
IN (
SELECT ID_Sc,ID_Tc
FROM Promise
)");
จะให้ Requirement.ID_Sc != Promise.ID_Sc and Requirement.ID_Tc != Promise.ID_Tc อะค่ะ
Date :
2010-01-19 12:25:11
By :
LuckyStar
No. 11
Guest
ขอบคุณค่า ด้วยคะ
Date :
2010-11-07 12:12:51
By :
palmmy
No. 12
Guest
แก้ให้เฉพาะ syntax นะครับ ผมยังไม่เข้าใจว่ากำลังทำอะไร
mysql จะใช้เครื่องหมาย () อย่างเช่น
(Requirement.ID_Sc, Requirement.ID_Tc) IN (SELECT ID_Sc, ID_Tc FROM Promise)
เพื่อเปรียบเทียบทีละหลายๆ ฟิลด์
$s = "SELECT Name_Sc, Name_Tc, Requirement.ID_Sc, Requirement.ID_Tc
FROM School,Teacher, Requirement
WHERE School.ID_Sc = Requirement.ID_Sc
AND Teacher.ID_Tc = Requirement.ID_Tc
AND Requirement.Re_Status = 'connect'
AND NOT ( (Requirement.ID_Sc, Requirement.ID_Tc) IN (SELECT ID_Sc, ID_Tc FROM Promise) )";
$result = mysql_query($s);