Question

I'm trying to do a pretty complex query in MySQL; complex for me, at least.

Here's an example of what I'm trying to do:

SELECT * FROM friends
LEFT JOIN users ON users.uid = friends.fid1
LEFT JOIN users ON users.uid = friends.fid2
WHERE (friends.fid1 = 1) AND (friends.fid2 > 1)
UNION SELECT fid2 FROM friends
WHERE (friends.fid2  = 1) AND (friends.fid1 < 1)
ORDER BY RAND()
LIMIT 6;

I'm getting back: ERROR 1066 (42000): Not unique table/alias: 'users'.

Where am I going wrong, and how should I really be performing this query?

Was it helpful?

Solution

Alias your table, like:

LEFT JOIN users u1 ON u1.uid = friends.fid1
LEFT JOIN users u2 ON u2.uid = friends.fid2

OTHER TIPS

You have written left join two times with different fields of tables, it seems to When it got parse so give them alias and then join them with friends Table

LEFT JOIN users users1 ON users1.uid = friends.fid1
LEFT JOIN users users2 ON users2.uid = friends.fid2
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top