关于我的布局(简化):
users table
|userid|lastauth|
当用户登录时,lastauth 被更改为新登录 token 的 authid。
auth table
|authid|token|
给定一个 token ,我想找出它属于哪个用户标识。我不确定我是否正确使用了 INNER JOIN,但是这个 SQL 给出了一个错误:
SELECT users.userid
FROM 'users'
INNER JOIN 'auth' on users.lastauth = auth.authid
WHERE auth.token=1234567890abcdef
最佳答案
不要对对象名称使用单引号。它们仅用于字 rune 字(您没有使用它们的地方):
SELECT users.userid
FROM users
INNER JOIN auth on users.lastauth = auth.authid
WHERE auth.token = '1234567890abcdef'
您可能将它与 MySQL 中那些可怕的反引号混为一谈:
SELECT users.userid
FROM `users`
INNER JOIN `auth` on users.lastauth = auth.authid
WHERE auth.token = '1234567890abcdef'
但是由于您的表名不是保留字,因此您不需要在对象名称周围使用任何类型的引号。
关于内部连接和位置的 MySQL 查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13098695/