我的mysql数据库中有一个名为level的列。 我正在尝试编写一个sql语句,其中一个参数当然是级别的。但是我收到了一个错误。我知道这是因为我使用的是受保护的单词,所以我仍然可以在声明中使用它。我把它放在逗号或其他内容中吗?
答案 0 :(得分:1)
来自评论
上面的错误消息告诉我们有多个表具有名为level的列,因此您必须在level列中添加要在WHERE子句中比较其列级别的表的别名。在下面的查询中,我假设您需要schools
表level
列,因此请使用此 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
您可以根据需要更改为正确的表别名。