Tôi có 4 bảng khác nhau mà tôi muốn tham gia. Các bảng được cấu trúc với các cột như sau:Tôi có thể tham gia nhiều bảng SQL bằng cách sử dụng ID như thế nào?
TableA - aID | nameA | dID
TableB - bID | nameB | cID | aID
TableC - cID | nameC | date
TableD - dID | nameD
Bắt đầu với bảng A, tôi hiểu cách JOIN bảng a và c bằng b, vì b có Khóa chính cho các bảng đó. Tôi muốn có thể tham gia bảng TableD trên TableA. Dưới đây là câu lệnh SQL của tôi rằng lần đầu tiên tham gia bảng A và B, sau đó tham gia đó để 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()))
Khi tôi cố gắng để thêm một tham gia, bao gồm D, tôi nhận được một lỗi đó là thảo luận từ 'không rõ:
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()))
sẽ không chọn tableN. * Lặp lại tất cả những phù hợp với chính ID chủ chốt trong các nhãn cột? (câu hỏi đã không xác định những gì đầu ra là mong muốn nhưng thường bạn sẽ không muốn làm điều này tôi nghĩ) –
Tôi có thể hỏi tại sao 'JOINableC' là' ON' 'TableC.cID = TableB.cID' và không' TableC.cID = TableA.cID'. Tôi cho rằng chúng tôi đang tham gia 'TableA' với 3 bảng khác. – emihir0