On Wed, May 4, 2022 at 9:12 AM Alexander Farber <alexander.far...@gmail.com>
wrote:

> I have tried CROSS JOIN and CASE WHEN (why be greedy, right?):
>
>
> https://dbfiddle.uk/?rdbms=postgres_14&fiddle=43a33374d15a9330145007702138822c
>
>         WITH myself AS (
>             SELECT uid
>             FROM words_social
>             WHERE social = in_social
>             AND sid = in_sid
>             LIMIT 1
>         ),
>         opponent AS (
>              SELECT CASE WHEN player1 = myself.uid THEN player2 ELSE
> player1 END
>              FROM words_games
>              WHERE gid = in_gid
>         )
>         SELECT
>                 CASE WHEN c.uid = myself.uid THEN 1 ELSE 0 END,
>                 c.msg
>         FROM  myself CROSS JOIN opponent
>         WHERE   (c.uid = myself.uid OR NOT opponent.muted)
>         ORDER BY c.CREATED ASC;
>
> but the error is:
>
> ERROR:  missing FROM-clause entry for table "myself"
> LINE 60:              SELECT CASE WHEN player1 = myself.uid THEN play...
>
>

What exactly are you trying to do in the "opponent" cte - and why do you
think the myself cte is visible to it?

David J.

Reply via email to