SQLのアクションで前のクエリの結果を使用する
ベースマキナのSQL系のデータソース(MySQL、PostgreSQL)では、複数のクエリを登録して順番に実行できます。
この機能を使う際に、前のクエリの結果を次のクエリで使用できます。
例えば、次のように指定のメールアドレスのユーザー情報を取得してから、取得したユーザーIDを使用してユーザーの決済情報を無効化するクエリを実行してみましょう。
具体的には取得したユーザーIDを格納する変数を定義して、その変数を次のクエリで使用します。
まず最初のクエリで変数を定義します。
SET @userId = '';
次に、指定のメールアドレスのユーザー情報を取得して、取得したユーザーIDを変数に格納します。
SELECT id INTO @userId FROM users WHERE email = {{ email }} LIMIT 1;
最後に、取得したユーザーIDを使用してユーザーの決済情報を無効化するクエリを実行します。
このクエリだけ「書き込み」の種類のクエリとして登録します。
DELETE FROM payment_settings WHERE user_id = @userId;
以上のように、@
を付けた変数を定義することで、前のクエリの結果を次のクエリで使用できます。
最終的な設定は次の画像のようになります。
なお、ベースマキナのSQL系のアクションは、複数のクエリを登録していても1つのセッション内で処理されます。
したがって一度変数に格納した値は、後続のクエリのいずれでも使用できます。