sql:ODBC保留关键字

时间:2018-03-21 09:35:36

标签: mysql sql

我的mysql数据库中有一个名为level的列。 我正在尝试编写一个sql语句,其中一个参数当然是级别的。但是我收到了一个错误。我知道这是因为我使用的是受保护的单词,所以我仍然可以在声明中使用它。我把它放在逗号或其他内容中吗?

1 个答案:

答案 0 :(得分:1)

来自评论

1052 - where子句中的列'level'不明确

上面的错误消息告诉我们有多个表具有名为level的列,因此您必须在level列中添加要在WHERE子句中比较其列级别的表的别名。在下面的查询中,我假设您需要schoolslevel列,因此请使用此 s.level

SELECT u.ck_id,u.firstname, u.lastname, sc.class_description, 
       s.name, GROUP_CONCAT(correct) 
FROM game_statistics gs 
INNER JOIN users1 u ON u.id = gs.user_id 
INNER JOIN school_classes sc ON sc.id = u.class_id 
INNER JOIN schools s ON s.id = sc.school_id 
WHERE game_type = 'exammultiple' AND gs.created_at >= '2018-03-01' 
      AND time >='40' AND s.`level` = '6' 
GROUP BY user_id 
ORDER By name ASC, class_description ASC 

您可以根据需要更改为正确的表别名。