Due sinistra si unisce e un sindacato in MySQL
-
01-10-2019 - |
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?
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