グループを表示すると、ユーザーがページを開いたときに2つのグループをランダムに表示する必要があります。 5.7が「ONLY_FULL_GROUP_BY」SQL_MODEためオプションを使用しているため、そうではないのMySQL 5.7で多くのために働くことによって罰金が、ワーキンググループ次のクエリでは使用しています。 "GROUP BY"
のほかに、あなたが提案できる他のクエリフォーマットがありますか?ユーザIDにloged場合($uid
)がグループの所有者ではないgroup_usersF.group_user_id <> '$uid'
5.7ではSQL_MODEに "ONLY_FULL_GROUP_BY"オプションが使用されているため、GROUP BYはMySQL 5.7で多数動作しません。
を接合
ユーザID($uid
)にloged場合クエリ
として示されなければならないが、されていません(グループ作成者)グループG.group_owner_id <> '$uid'
。すでにSELECT DISINCT
を使用していることを考えると
$query = mysqli_query($this->db,"SELECT DISTINCT
G.group_id,
G.group_owner_id,
G.group_name,
G.group_title,
G.group_cover,
F.group_oid,
F.group_user_id
FROM groups G,
group_users F
WHERE G.status ='1' AND
G.group_id = F.group_oid AND
G.group_owner_id <> '$uid' AND
F.group_user_id <> '$uid'
GROUP BY G.group_id
ORDER BY rand()
LIMIT 2 ") or die(mysqli_error($this->db));
マニュアルを読んだら、GROUP BYを正しく書いてください。正しく動作すれば動作します。 – RiggsFolly
@RiggsFolly私はそれができないので、私は助けが必要です。 – Azzo
@Azzoあなたが 'SELECT DISTINCT'を使っているとすれば、あなたは望む結果を得るために必ず' GROUP BY'を使う必要はないと推測します。完全に削除するだけでなく、SELECT文のすべての列を 'GROUP BY'節に含めることができます。 –