UNION's (UNION
en UNION ALL
) vereisen dat alle vragen die UNION zou hebben:
- Hetzelfde aantal kolommen in de SELECT-component
- Het kolomgegevenstype moet op elke positie overeenkomen
Uw vraag heeft:
SELECT f.*, u1.*, u2.* ...
UNION
SELECT fid2 FROM friends
De gemakkelijkste herschrijving die ik heb is:
SELECT f.*, u.*
FROM FRIENDS AS f
JOIN USERS AS u ON u.uid = f.fid2
WHERE f.fid1 = 1
AND f.fid2 > 1
UNION
SELECT f.*, u.*
FROM FRIENDS AS f
JOIN USERS AS u ON u.uid = f.fid1
WHERE f.fid2 = 1
AND f.fid1 < 1
ORDER BY RAND()
LIMIT 6;
Je bent LEFT JOIN'd naar de USERS
tafel tweemaal, maar lijken de informatie niet te gebruiken.