我在使用select语句时遇到问题。我试图执行连接,我需要将表名添加到列中,但是会引发错误unknown column user_roles.name in field list
。
db.query(
"SELECT user_role.name, user_role.description, user_role_admin.permission FROM user_role ur INNER JOIN user_role_admin ura ON ura.user_id = ? AND ura.role_id = ur.role_id",
[param],
function (req, res, next) {
if (error) throw error;
if (rows.length > 0) {
res.json(rows);
} else {
res.sendStatus(500);
}
}
它绝对是一个列,因为如果我尝试以下查询,我会从表中获取值。
SELECT name, description FROM user_role;
答案 0 :(得分:2)
您已经为表名提供了别名。使用它们:
SELECT ur.name, ur.description, ura.permission
FROM user_role ur INNER JOIN
user_role_admin ura
ON ura.user_id = ? AND ura.role_id = ur.role_id;
一旦为表提供了别名,就无法识别原始表名。
答案 1 :(得分:1)
使用别名而不是完整的表名:
SELECT ur.name, ur.description, ura.permission
FROM user_role ur --when alliased you cannot use original name
INNER JOIN user_role_admin ura
ON ura.user_id = ?
AND ura.role_id = ur.role_id