我在使用连接进行简单查询时遇到错误。
我的查询:
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/