mysql - SQLSTATE 错误语法错误或访问冲突 : 1066 Not unique table/alias: 'users_sessions'

标签 mysql sql select join mysql-error-1066

我在使用连接进行简单查询时遇到错误。

我的查询:

SELECT users_sessions.user_id AS users_sessions_user_id,
       users.last_name AS users_last_name,
       users.first_name AS users_first_name 
FROM prefix_users_sessions AS users_sessions,
     prefix_users AS users INNER JOIN 
     users_sessions 
     ON users.id = users_sessions.user_id

我的错误:

SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'users_sessions'

我不明白这条消息...我没有看到更多使用别名的地方。

谁能帮我解决这个问题?

提前感谢您的帮助。

--已解决--

好的查询如下:

    SELECT users_sessions.id AS users_sessions_id,
           users_sessions.user_id AS users_sessions_user_id,
           users.lastname AS users_lastname, users.firstname AS
           users_firstname
    FROM prefix_users_sessions AS users_sessions
           JOIN prefix_users AS users ON users.id = users_sessions.user_id 

最佳答案

您的 from 子句一团糟。一个简单的规则:永远不要FROM 子句中使用逗号。 始终使用明确的JOIN 语法。

此外,使用较短的表别名,以便您的查询更易于编写和阅读:

SELECT us.user_id AS users_sessions_user_id,
       u.last_name AS users_last_name,
       u.first_name AS users_first_name 
FROM prefix_users_sessions us INNER JOIN
     prefix_users  u 
     ON u.id = us.user_id;

这假设您实际上没有名为 users_sessions 的表,而打算使用名为 prefix_users_sessions 的表。

关于mysql - SQLSTATE 错误语法错误或访问冲突 : 1066 Not unique table/alias: 'users_sessions' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33553916/

相关文章:

mysql - Moodle 和文件格式错误

mysql - 您如何确定服务器所需的硬件?

Mysql根据相同的值对多个列进行计数

sql - 在 IntelliJ 的表编辑器中插入 Postgres 序列列

c# - 一次将整个 DataTable 插入数据库而不是逐行插入?

Mysql按组限制前1行

php - MYSQL连接两个表

sql - 如何使用一个 select 语句的结果作为另一个 select 语句的列?

javascript - 当 Select 包含重复值时使用 Cypress select()