为了记录,我在本网站上阅读了几篇解决类似问题的帖子,但我无法解决我的问题。几个小时后,我辞职去询问这个网站上的善良大师。下面是我的SQL查询:
SELECT `users`.`User`, `courses`.`course`, `member`.`role`
FROM `users`
INNER JOIN `courses`, `member` ON `users`.`ID`=`member`.`user_id`
WHERE `courses`.`ID`='21';
此查询适用于SQLite。但是,使用phpMyAdmin我得到:
1064 - 您的SQL语法出错;检查手册 对应于您的MariaDB服务器版本,以获得正确的语法 靠近&{39; ON
users
。ID
=member
。user_id
WHEREcourses
。ID
=' 21' 限制0,25和#39;在第1行
ON条款总是爆炸。如果我删除ON子句,我会得到结果。我想知道如何使ON子句有效。
仅供参考:我在XAMPP上为我的本地主机运行。成员表有两个外键user_id和course_id但没有单个主键。它是课程和用户之间多对多关系的联结表。提前谢谢。
答案 0 :(得分:1)
如果我理解正确,您需要在两个表中都包含join
条件,因为member
中有2个外键:
select u.user, c.cource, m.role
from users u
join member m on u.id = m.user_id
join courses c on m.course_id = c.id
where c.id = 21
通常,您不应在from
子句中使用逗号 - 使用更标准的join
语法。