Domanda

Sto cercando di fare una query piuttosto complessa in MySQL; complessa per me, almeno.

Ecco un esempio di quello che sto cercando di fare:

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;

mi sto di nuovo:. ERROR 1066 (42000): Not unique table/alias: 'users'

Dove sto andando male, e come devo davvero si esibirà questa ricerca?

È stato utile?

Soluzione

Alias ??vostro tavolo, come:

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

Altri suggerimenti

Hai scritto sinistra unire due volte con diversi campi di tabelle, sembra Quando faceva parse in modo da dare loro alias e poi unirsi a loro con la tabella friends

LEFT JOIN users users1 ON users1.uid = friends.fid1
LEFT JOIN users users2 ON users2.uid = friends.fid2
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top