あなたのアップデートはこれに相当します。
UPDATE schedules s SET days = (SELECT LISTAGG(day, ', ') within group ( ORDER BY day_order ) FROM days d WHERE d.schedule IN ( 'Weekend', 'Weekday' ) AND d.schedule = s.schedule GROUP BY d.schedule ) ;
プレ>ただし、お勧めしません これ。レコードをカンマ区切りの値として保存すると、将来的に問題が発生する可能性があります。以下のようなクエリを使用して結果を表示するためにのみ使用してください。これは、days テーブルに各日ごとに一意の行があることを前提としています。重複がある場合は、
join
日とは異なる結果セットになります。SELECT d.id, d.schedule, LISTAGG(s.day, ', ') within GROUP ( ORDER BY d.day_order ) FROM days d join schedules s ON ( d.schedule = s.schedule ) WHERE d.schedule IN ( 'Weekend', 'Weekday' ) GROUP BY d.id, d.schedule
プレ>