ฉันมี 4 ตารางที่แตกต่างกันที่ฉันต้องการเข้าร่วม ตารางมีโครงสร้างที่มีคอลัมน์ดังนี้
TableA - aID | nameA | dID
TableB - bID | nameB | cID | aID
TableC - cID | nameC | date
TableD - dID | nameD
เริ่มต้นด้วยตาราง A ฉันเข้าใจวิธีเข้าร่วมตาราง a และ c โดยใช้ b เนื่องจาก b มีคีย์หลักสำหรับตารางเหล่านั้น ฉันต้องการที่จะเข้าร่วม TableD บน TableA เช่นกัน ด้านล่างนี้เป็นคำสั่ง SQL ของฉันที่แรกเข้าร่วมตาราง A และ B จากนั้นเข้าร่วมที่ C:
SELECT TableA.*, TableB.*, TableC.* FROM (TableB INNER JOIN TableA
ON TableB.aID= TableA.aID)
INNER JOIN TableC ON(TableB.cID= Tablec.cID)
WHERE (DATE(TableC.date)=date(now()))
เมื่อฉันพยายามที่จะเพิ่มเข้าร่วมอีกครั้งเพื่อรวม D ฉันได้รับข้อผิดพลาดที่ 'TableD' ไม่เป็นที่รู้จัก:
SELECT TableA.*, TableB.*, TableC.*, TableD.* FROM (TableB INNER JOIN TableA
ON TableB.aID= TableA.aID)
INNER JOIN TableC ON(TableB.cID= Tablec.cID)
INNER JOIN TableA ta ON(ta.dID= TableD.dID)
WHERE (DATE(TableC.date)=date(now()))