在MySQL中,需要连接两个表,其中一个表具有对第二个的多个引用

时间:2010-08-12 18:54:22

标签: php sql mysql database join

我有两个表,一个是注册,其中包含两个字段,firstchoice和secondchoice。另一个是计划表,它具有开始和结束日期以及semesterid之类的内容。 signups表中的firstchoice和secondchoice都引用了schedule表中的semesterid。我正在尝试创建一个页面,显示所有已注册的人员和他们已注册的日程安排(开始和结束日期),以及我当前的查询:

$query = "SELECT * FROM signups INNER JOIN (schedule) ON signups.firstchoice=schedule.semesterid AND signups.secondchoice=schedule.semesterid";

未从计划表中返回任何结果。是否可以像这样连接两个表,一个表上的两列引用另一个表上的一列?

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找这个:

SELECT * 
FROM signups s
INNER JOIN schedule sc1 ON s.firstchoice=sc1.semesterid 
INNER JOIN schedule sc2 ON s.secondchoice=sc2.semesterid 

如果他们不总是有第二选择,您可能想要这样做:

SELECT * 
FROM signups s
INNER JOIN schedule sc1 ON s.firstchoice=sc1.semesterid 
LEFT OUTER JOIN schedule sc2 ON s.secondchoice=sc2.semesterid