我正在編寫SQL語句,並且在加入兩個表時我們遇到問題(我們稱之爲表註冊&產品)在表格註冊的列StudentID的外鍵列上。 StudentID是從變量$ StudentID中讀取的。選擇加入表A和表B,同時根據表A的外鍵顯示錶B項目
報名表
+--------------+-----------+-----------+
| EnrollmentID | StudentID | ProductID |
+--------------+-----------+-----------+
| 1 | 5 | 1 |
| 2 | 5 | 2 |
|3 | 7 | 2 |
|4 | 7 | 3 |
|5 | 9 | 5 |
+--------------+-----------+-----------+
產品表
+-----------+-------------+------------+
| ProductID | ProductName | ProductDate|
+-----------+-------------+------------+
|1 | ProductA | 1/1/2017 |
|2 | ProductB | 1/2/2017 |
|3 | ProductC | 1/3/2017 |
|4 | ProductD | 1/4/2017 |
+-----------+-------------+------------+
這是SQL語句到目前爲止,我已經出來,並有麻煩:
"SELECT product.ProductName, product.ProductDate
FROM enrollment WHERE StudentID = '$StudentID'
RIGHT JOIN product ON enrollment.productid = product.productid";
如果$ StudentID是5.我希望它顯示與StudentID 5關聯的ProductID中的所有項目。在這種情況下,Product A和Pr輸出B將是輸出。
聽起來好像'Enrollment'是[**橋接表**](https://en.wikipedia.org/wiki/Associative_entity),以及'StudentID'被來自**第三張桌子(「學生」)。您還需要加入該表格:) –
是的,它來自第三個表格。但是該表中沒有使用列,而只使用了「StudentID」。我不熟悉加入三張表。 –
如果你不顯示第三張表中的數據,那麼你仍然**使用** ID將這兩張表「關聯」在一起。要將三個表連接在一起,您基本上只需要在末尾(在「註冊」和「學生」之間)添加另一個「JOIN」。這裏是[**一些例子**](https://stackoverflow.com/questions/3709560/mysql-join-three-tables)來幫助那個:) –