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 > 1UNIOn SELECt f.*, u.* FROM FRIENDS AS f JOIN USERS AS u ON u.uid = f.fid1 WHERe f.fid2 = 1 AND f.fid1 < 1ORDER BY RAND()LIMIT 6;
您已经
USERS两次加入表,但似乎没有使用该信息。



