phpMyAdmin数据库查询连接表:ON始终原因#1064语法错误

时间:2016-02-22 01:25:23

标签: mysql join mariadb

为了记录,我在本网站上阅读了几篇解决类似问题的帖子,但我无法解决我的问题。几个小时后,我辞职去询问这个网站上的善良大师。下面是我的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 usersID = memberuser_id WHERE coursesID =' 21'   限制0,25和#39;在第1行

ON条款总是爆炸。如果我删除ON子句,我会得到结果。我想知道如何使ON子句有效。

仅供参考:我在XAMPP上为我的本地主机运行。成员表有两个外键user_id和course_id但没有单个主键。它是课程和用户之间多对多关系的联结表。提前谢谢。

1 个答案:

答案 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语法。

相关问题