//คิวรี่ครั้งที่สองนั้นจะนำ jdsID ไปหาว่าตรงกับวิชาไหนบ้าง
$strSql1="SELECT * FROM $table2 WHERE jdsID='$jdsID' GROUP BY clID";
$result1=mysql_db_query($dbname1, $strSql1);
while($row1=mysql_fetch_array($result1))
{
echo $clID = $row1[clID];
echo "<br>";
}
}
ค่าที่ได้คือ
1
2
3
1
5
6
จะเห็นว่าค่าที่ได้มานั้นจะมีที่ซ้ำกันคือ 1 ที่ใช้ group by ไม่ได้นั้นเพราะว่าค่าที่ได้จากการคิวรี่ครั้งแรกนั้นมันจะได้
1 และ 2 มานะครับ...พอาเรานำค่านั้นมา where ที่การคิวรี่ครั้งที่สองนั้นมันก็จะ where ที่ค่าที่เรากำหนดมา ดังนั้นการใช้ group by มันไม่ได้ผลครับ
พอจะมีวิธีมั๊ยครับ...ชี้นำหน่อย
Date :
14 มี.ค. 2551 09:13:34
By :
com1com
No. 4
Guest
ลองดูครับ
SELECT `noID`,`jdsID`,`clID` FROM `clid` WHERE `jdsID` in (SELECT `jdsID` FROM `userid` WHERE `userID`='s0001') group by clID order by clID
Date :
14 มี.ค. 2551 09:27:56
By :
takereu
No. 5
Guest
อีกนิด
ใช้ subquery ครับ
SELECT `noID`,`jdsID`,`clID` FROM `clid` WHERE `jdsID` in (SELECT `jdsID` FROM `userid` WHERE `userID`='s0001') group by clID order by clID
ตาราง1 clID
ตาราง2 userid
จะได้ผลลัพธ์
1
2
3
5
6
ครับ
Date :
14 มี.ค. 2551 09:36:27
By :
takereu
No. 6
Guest
หรือถ้าจะเอาเฉพาะฟิลด์ clID
ไม่ต้องใช้ group by ก็ได้
ใช้ distinct แทน แบบนี้ครับ
SELECT distinct `clID` FROM `clid` WHERE `jdsID` in (SELECT `jdsID` FROM `userid` WHERE `userID`='s0001') order by clID
ลองดู
แต่แนะนำให้ใช้ Group by ดีกว่าครับ