0

useruser_matchingの 2 つのテーブルがあります。そして、1つのクエリで両方のテーブルからアイテムを取得したい. たとえば、SQL に似たクエリ:

select * from user where user.id = (select id from user_matching where id = user_matching_id)

通常、NoSQL DB では 2 つのクエリを使用する必要があります。今、私は次のようにします:

  1. user_matching user_idから取得
  2. user_id でユーザーから取得

Tarantool を使用して 1 つのクエリだけに置き換えることはできますか。そしてどのように?

4

1 に答える 1

3

2 つの選択の結果を結合するストアド プロシージャを作成する必要があります。

function select_user_by_matching_id(matching_id)
    local id = box.space.user_matching:get{matching_id} # or :select
    local user_data = box.space.user:get{id} # or :select
    # work with user_data
    return user_data
end

このプロシージャを作成したら、Tarantool ドライバを介してこのプロシージャを呼び出し、結合された結果を取得できます。

詳細はこちら: http://tarantool.org/doc/book/app/c-lua_tutorial.html?highlight=call

于 2016-04-05T07:34:22.213 に答える