On Wed, May 4, 2022 at 8:36 AM Alexander Farber <alexander.farber@xxxxxxxxx> wrote:
David, I try then the following -On Wed, May 4, 2022 at 5:28 PM David G. Johnston <david.g.johnston@xxxxxxxxx> wrote:You missed quoting the part where I describe the on clauses you need to distinguish between "them" and "me"Me: u.uid in (player...) and (s.uid = u.uid)
Them: u.uid in (player...) and (s.uid <> u.uid)SELECTCASE WHEN c.uid = s.uid THEN 1 ELSE 0 END,c.msgFROM words_chat cJOIN words_games g USING (gid)JOIN words_users myself ON (myself.uid IN (g.player1, g.player2) AND myself.uid = s.uid)JOIN words_users opponent ON (opponent.uid IN (g.player1, g.player2) AND myself.uid <> s.uid)JOIN words_social s ON (s.uid = myself.uid)WHERE c.gid = in_gidAND s.social = in_socialAND s.sid = in_sidAND (c.uid = myself.uid OR NOT opponent.muted)ORDER BY c.CREATED ASC;And get the syntax error which don't quite understand:ERROR: missing FROM-clause entry for table "s"LINE 57: ...yself.uid IN (g.player1, g.player2) AND myself.uid = s.uid)^Probably because "myself" needs "s" and vice versa?
Well, that is basically why I was going on about the oddity of having social be a part of the main query. Personally I would write it as "myself.uid = in_uid", but you don't have an in_uid to reference. Decide how you want to do something equivalent.
David J.