便利な使い方
SQLのアクションで前のクエリの結果を使用する

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のアクションで前のクエリの結果を使用する

なお、ベースマキナのSQL系のアクションは、複数のクエリを登録していても1つのセッション内で処理されます。

したがって一度変数に格納した値は、後続のクエリのいずれでも使用できます。