我的 mysql 数据库中有一个名为 level 的列。 我正在尝试编写一个 sql 语句,其中一个参数当然是级别。但是我得到一个错误。我知道这是因为我使用了一个 protected 词,所以我怎么还能在我的声明中使用它。我把它放在逗号之类的里面吗?
最佳答案
来自评论
1052 - where 子句中的“级别”列不明确
上面的错误信息告诉我们,不止一个表有一个名为 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
您可以更改为您想要的正确表别名。
关于mysql - sql: ODBC 保留关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49402674/