UNION(UNION
およびUNION ALL
)UNIONであるすべてのクエリに次のものが含まれている必要があります:
- SELECT句の同じ数の列
- 列のデータ型は各位置で一致する必要があります
クエリには次のものがあります:
SELECT f.*, u1.*, u2.* ...
UNION
SELECT fid2 FROM friends
私が持っている最も簡単な書き直しは次のとおりです:
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;
USERS
に参加しました 表を2回表示しますが、情報を使用していないようです。