I've got an error with a simple query using a join.
My query :
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
My error :
SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'users_sessions'
I don't understand the message... i don't see where the alias is used more that one.
Who can help me to solve this problem ?
Thankz by advance for your help.
--SOLVED--
The good query is the following :
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
Your from
clause is all messed up. A simple rule: Never use commas in the FROM
clause. Always use explicit JOIN
syntax.
Also, use shorter table aliases so your query is easier to write and to read:
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;
This assumes that you don't really have a table called users_sessions
, and the intention is to use a table called prefix_users_sessions
.