เกี่ยวกับการ query FK สองค่า ใน 1 แถวของตารางหลักครับ
ลองแก้ Field ของ Match จาก team_1 , team_2 แล้วรวมเป็น team_id แล้วใส่ค่าเป็น 1 , 2 น่าจะดีนะคับ
แล้วใช้ JOIN SQL มาช่วย
-------------------
Table " match "
- mid_id
- team_id
- time
Table " team "
- team_id
- match_id
- team_name
Code (PHP)
$strSQL = "SELECT * FROM match AS m, team AS t WHERE m.team_id = t.team_id";
$result = mysql_query($strSQL);
while($row = mysql_fetch_array($result))
{
echo 'Team ID : '.$row['team_id'].'<br />';
echo 'Team Name : '.$row['team_name'].'<br />';
echo 'Match ID : '.$row['match_id'].'<br />';
echo 'Time : '.$row['time'].'<br />';
}
ลองดูครับยังไม่ได้ทดสอบ ถ้าผิดพลาดก็ขออภัยด้วยครับ
ยังไงลองเอาไปเป็นแนวทางดู หรือ ท่านผู้รู้อื่นๆมาชี้แจ้งอีกที ^^
ประวัติการแก้ไข 2012-05-28 00:52:53 2012-05-28 00:53:15 2012-05-28 00:53:47
Date :
2012-05-28 00:51:06
By :
blackedition
คือค่าในตาราง team มันอยู่คนละแถวอ่ะครับ
match
id...................team_1.....................team_2
1...................team_id............... .....team_id *****
2...................team_id............... .....team_id
3...................team_id............... .....team_id
n...................team_id............... .....team_id
team
team_id..............mid................name
1...........................1....................ชื่อทีมไอดี1
2...........................2....................ชื่อทีมไอดี2
3...........................3....................ชื่อทีมไอดี3
4...........................4....................ชื่อทีมไอดี4
คือเรียกชื่อทีมมาแสดงว่าทีมไหนกับทีมไหนที่อยู่แมตช์เดียวกันครับ (หรือแข่งกันน่ะครับ)
โดยใช้ค่าที่อยู่ใน team_1 กับ team_2 เป็นค่า fk เปรียบเทียบกับตาราง team ครับ
ตรง ***** ค่าอาจจะเป็น
match ที่ 1 ค่า...................1..................3
เพื่อจะเรียกชื่อทีมที่ค่า team_id 1 และ 3 ตรงกับตาราง team ครับผม
ขอบคุณครับ
Date :
2012-05-28 02:31:17
By :
Pine
เย้ย!! ตรง
team_id..............mid................name
1...........................1....................ชื่อทีมไอดี1
2...........................2....................ชื่อทีมไอดี2
3...........................3....................ชื่อทีมไอดี3
4...........................4....................ชื่อทีมไอดี4
ผมผิดครับ ไม่มี mid ครับ ....สมองเบลอไปหน่อย แหะๆๆ
เป็น
team_id.............................name
1.............................................ชื่อทีมไอดี1
2.............................................ชื่อทีมไอดี2
3.............................................ชื่อทีมไอดี3
4.............................................ชื่อทีมไอดี4
เฉยๆ ครับ
Date :
2012-05-28 02:33:31
By :
Pine
ตรงที่ยกตัวอย่างผิดทั้งสองจุด จริงๆ มันเป็นค่า league ครับ
ว่าทีมนี้อยู่ league ไหนครับผม แฮ่ๆๆๆ
เบลอไปหน่อยครับ ขอโทษกับตัวอย่างครับ
แต่คำถามหลักคือ จะเรียกคิวรี่ยังไงให้เลือก team_id ทั้งสอง ในตาราง team
ที่ตรงกับ team_1 กับ team_2 ในตาราง match ครับ
ขอบคุณครับ
Date :
2012-05-28 02:38:15
By :
Pine
ตอนนี้เจอแนวทางแล้วครับ ผมใช้ IN (team1, team2)
แต่เอาชื่อทีมออกมาไม่ได้ ฮ่าๆๆๆๆ
ไม่ทราบว่า ต้องเรียกยังไงครับ
ขอบคุณครับ
Date :
2012-05-28 04:16:48
By :
Pine
Load balance : Server 02