UNIONy (UNION
a UNION ALL
) vyžadují, aby všechny dotazy, které jsou UNION, měly:
- Stejný počet sloupců v klauzuli SELECT
- Datový typ sloupce se musí na každé pozici shodovat
Váš dotaz má:
SELECT f.*, u1.*, u2.* ...
UNION
SELECT fid2 FROM friends
Nejjednodušší přepsání, které mám, je:
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;
ODEŠLI JSTE PŘIPOJENÍ k USERS
tabulky dvakrát, ale nezdá se, že byste tyto informace používali.