GraphQL选择子查询

时间:2019-09-03 07:18:19

标签: laravel graphql laravel-lighthouse

这天,我使用灯塔图书馆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 个答案:

答案 0 :(得分: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();

如果tableAtableB之间存在关联,则可以执行以下操作

 TableA::where('type',1)
        ->whereHas('tableBRelationshipName', function ($q) use ($phoneNumber) {
             $q->select('id')
             $q->where('phone','=',$phoneNumber);
 })->get();