选择加入表A和表B,同时根据表A的外键显示表B项

时间:2017-06-06 03:08:10

标签: php mysql

我正在编写一个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将是输出。

2 个答案:

答案 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}' "