2

サブクエリを参照して、case ステートメントで値を使用しようとしています。しかし、SELECT ステートメント内ではnext_creation、列が存在しないと不平を言うだけなので、参照できません。クエリ全体を CASE ステートメントでラップすることを考えましたが、CASE ステートメントではクエリを複数回実行する必要があり、ばかげているようです。

サブクエリでも実行しようとしましたCROSS JOINが、サブクエリ内で tg を参照できないと不平を言っています。カーネル エラー: エラー: テーブル "tg" の FROM 句エントリへの無効な参照 ヒント: テーブル "tg" のエントリがありますが、クエリのこの部分からは参照できません。

aも使ってみましたWITHが、基本的にはCROSS JOINと同じ結果です。WITHそのため、最初のクエリがメインクエリと同じである2つの句を追加しOUTERて、2番目のクエリで値を使用できるようにしました....エラーが発生しました。

tgサブクエリが外部クエリから利用できるようにしながら、変数に貼り付けて使用するなど、サブクエリを参照する方法はありますか?

SELECT *, (
    SELECT
        tg2.created
    FROM tocom t
    LEFT JOIN tocom_g_assoc ON tocom_g_assoc.table_id = t.id AND tocom_g_assoc.tocom_g_id != tg.id
    LEFT JOIN tocom_g tg2 ON tg2.id = tocom_g_assoc.tocom_g_id
    WHERE t.id IN ( SELECT t_id FROM tocom_g_assoc WHERE tocom_g_assoc.tocom_g_id = tg.id )
        AND tg2.createdt > tg.created
        AND tg2.created IS NOT NULL
    ORDER BY tg2.created ASC
    LIMIT 1
) next_creation

/*
Here I want to do as CASE statement, but for argument sake,
a simple next_creation - tg.dissolved_at would do
*/

FROM wp p
LEFT JOIN tocom_g tg ON tg.id = p.tocom_g_id
WHERE tg.dissolved_at IS NOT NULL
4

1 に答える 1

1

問題に気づきました。

だから私はそれを選択のままにして、サブクエリを返しました。次に、すべてを別の選択でラップし、そのクエリを from ステートメントにしました。その後、返された値でやりたいことを何でもできました。

于 2013-11-09T02:53:07.453 に答える