我正在编写一个SQL语句,我在基于表Enrollment列StudentID中的外键列加入两个表(我们称之为Table Enrollment& Product)时遇到问题。从变量$ StudentID读取StudentID。
报名表
+--------------+-----------+-----------+
| 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相关联的ProductID中的所有项目。在这种情况下,产品A和产品B将是输出。
答案 0 :(得分:1)
DECLARE @StudentID INT = 5;
SELECT p.productname, p.productdate 从注册e RIGHT JOIN producttable p ON e.productid = p.productid 在哪里e.studentid = @StudentID
答案 1 :(得分:1)
通过阅读你的sql代码,我假设你使用PHP来生成sql查询。如果要在PHP中的字符串中包含变量值,请使用{$variable}
。你必须先加入表格然后申请条件。使用以下查询,
"SELECT product.ProductName, product.ProductDate FROM enrollment inner join student ON enrollment.studentid = student.studentid RIGHT JOIN product ON enrollment.productid = product.productid WHERE enrollment.StudentID = '{$StudentID}' "