内部连接和位置的 MySQL 查询错误

标签 mysql sql syntax

关于我的布局(简化):

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/

相关文章:

php.ini block PHP PDO

mysql - 合并表并在必要时分配新的主键

mysql - 如何使用 SQL 查找给定字符串的最接近字符串

sql - 在 MySQL 中对联合查询进行排序

触发器中的 MySql 错误语法

flutter - 什么?在 Dart 中做什么?

java - 如何使用java从mysql过滤数据并将其显示在jtable中

mysql - 平台初始化期间在数据库中找不到源表 'props' 错误

.net - count(*) 的 SQL 语句有问题

php - 请调试 MySQL 语法错误