GraphQL, где выбрать подзапрос

В этот день я учился GraphQL с Laravelрамки, Библиотека Маяка. Я пытался сделать что-тоSELECT Query.

В результате мне интересно, что GraphQL может выбрать ниже SQL-запрос

SELECT * FROM TABLE_A WHERE type=1 AND chart_id=(SELECT id FROM TABLE_B WHERE phone='0000~~')

Я ожидаю, что Клиент сначала получит результат от этого запроса.

SELECT id FROM TABLE_B WHERE phone='0000~~'

А затем выполните второй запрос, думаю, я могу получить результат.

Но мне интересно, что я могу получить результат с 1 запроса. Спасибо.

1 ответ

Решение

Вы можете попробовать следующее

 $phoneNumber = '0000~~';

 $data = DB::table('tableA')->where('type',1)
            ->whereIn('chart_id',function($query) use ($phoneNumber) {
                $query->select('id')
                      ->from('tableB')
                     ->where('phone', '=',$phoneNumber);
         })->get();

Если есть связь между tableA а также tableB вы можете сделать следующее

 TableA::where('type',1)
        ->whereHas('tableBRelationshipName', function ($q) use ($phoneNumber) {
             $q->select('id')
             $q->where('phone','=',$phoneNumber);
 })->get();
Другие вопросы по тегам