Reputation: 209
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
Upvotes: 1
Views: 2178
Reputation: 1269683
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
.
Upvotes: 1
Reputation: 401
You specified table prefix_users_sessions twice
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
INNER JOIN prefix_users AS users
ON users.id = users_sessions.user_id
Upvotes: 0
Reputation: 4747
You use name users_sessions
twice.
First as the alias of prefix_users_sessions
and then as a normal table in the INNER JOIN
. Also try to use INNER JOIN
s and not selecting from two tables simultaneously e.g (in your query).:
FROM prefix_users_sessions AS users_sessions, prefix_users AS users
Upvotes: 0