Ich habe dieses SQLFiddle Demo für ein besseres Verständnis des Problems erstellt.die Abfrage gibt nicht die Ergebnisse, die ich will
Zuerst werde ich versuchen, Ihnen zu sagen, was ich tun möchte. Menschen können ihre eigenen Gruppenseiten über Facebook erstellen. Ich habe es Menschen ermöglicht, eigene Gruppen-Seiten in meinem eigenen Social-Networking-Projekt aufzubauen. Wir wissen, dass Facebook auf der Hauptseite unter dem Namen empfohlene Gruppen angezeigt wird. Es gibt zwei oder mehr verschiedene vorgeschlagene Gruppen. Genau das möchte ich tun. Ich möchte die vorgeschlagene Gruppe von meiner Hauptseite aus anzeigen.
Wie können Sie in der Abfrage sehen gibt es einige Bedingungen zur Verfügung, diese sind jeweils wie folgt:
1-) Die Person, die die Gruppe eingerichtet wird die Gruppe nicht sehen ist er in den empfohlenen Gruppen einrichten .
2-) Die Person kann die verbundene Gruppe nicht von den empfohlenen Gruppen sehen.
In den empfohlenen Gruppen möchte ich nur zwei vorgeschlagene Gruppen anzeigen.
Die Abfrage ist hier:
SELECT
G.group_id,
G.group_owner_id,
G.group_name,
G.group_title,
G.group_cover,
F.group_oid,
F.group_user_id
FROM group_users F
INNER JOIN groups G
ON G.group_id = F.group_oid
WHERE
G.status = '1' AND
F.group_oid <> '10' AND
F.group_user_id <> '10'
GROUP BY
F.group_oid
ORDER BY rand()
LIMIT 2
Erstes Problem ist: Menschen aus vorgeschlagenen Gruppen seine eigene Gruppe zu sehen. I möchte nicht seine eigene Gruppe von vorgeschlagenen in dieser Abfrage zeigen.
Zweites Problem ist: Leute sehen seine verbundene Gruppe von vorgeschlagenen Gruppen. Ich möchte seine beigetretene Gruppe nicht von der in dieser vorgeschlagenen Abfrage zeigen.
Sie erste Problem mit der Demo testen, wie folgt:
Die Zahl 10 ist die Gruppe sapsik erstellt (group_id 16). Die Abfrage muss diese Zeile in der Ausgabe deaktivieren, da wir 10 in dieser Abfrage verwenden.
F.group_oid <> '10' AND
F.group_user_id <> '10'
Und auch Sie können Zweites Problem mit der Demo testen, wie folgt:
Die numver 8 ist nicht seine eigene Gruppe erstellt, Nummer 8 gerade beigetreten Gruppe 16 (table group_users, row group_oid 16 , group_user_id 8
). Aber wenn Sie die folgende Zeile wie folgt ändern
F.group_oid <> '8' AND
F.group_user_id <> '8'
Nummer 8 weiterhin die Gruppe zu sehen, die noch registriert ist.