0

以下のように定義された 2 つのテーブル:

----------   types -----------
 id      type    
  1        A
  2        B
  3        C

----------  subtypes ----------
 id   type_id    sub_type
  1     1      sub_type1
  2     2      sub_type1
  3     3      sub_type2
  4     1      sub_type3  
  5     2      sub_type2

私のPHP NOTORMコードは次のとおりです。

 $query = $db->types();
 $subTypeFilters = ['sub_type1','sub_type3'];

 function filteredQuery($subTypeFilters , $query){
    global $db; 
    $subTypeQuery ;
    for($i = 0 ; $i < count($subTypeFilters); $i++){

     // if($i>0)
     //    $subTypeQuery .= ' OR ' ;
      $subTypeQuery = $query('id' , $db->sub_type()->where('sub_type', $subTypeFilters[$i])->select('type_id'));
    }

echo   ($subTypeQuery);
return $subTypeQuery;
}

$query = filteredQuery($subTypeFilters , $query);

$subTypeQuery を取得しているselect * from types where (id in (1,2)) AND (id in (1))ので、最終的に id = 1 の型が 1 つだけになります。OR 演算子を間に配置して、配列で指定されたサブタイプを持つすべての型を取得するにはどうすればよいですか。

4

0 に答える 0