将父表连接到其子节点并从中获取数据

时间:2014-11-12 07:19:34

标签: php mysql laravel

我有两个数据库。 parentSubchildsub

parentSub

|ID|component_name|weight|actualWeight
 1   a              0        0
 2   b              0        0
 3   c              0        0
 4   d              0        0
 5   e              0        0
 6   f              0        0

childSub

|parent_iD|category_name|weight|actualWeight
 1          aa              0        0
 2          aaa             0        0
 3          aaaa            0        0
 4          bb              0        0
 5          bbb             0        0
 6          cc              0        0
 7          ccc             0        0
 8          dd              0        0
 9          ee              0        0
 10         ff              0        0

正如您在上面看到的那样childSub有一个名为parent_iD的列。我想获取名为component_name的列,之后childs数据必须在parentSub中。像这样。如何在该特定列下获取childsub。所有a必须在父a下。使用他们的ID。

 a
    aa
    aaa
    aaaa
  b
    bb  
    bbb
  c
    cc
    ccc
  d 
    dd
  e
    ee
  f
    ff

我一直在使用laravel作为框架。我唯一做的就是只获取component_name列和category_name

getColumnController.php

 return View::make('view.index')->with('parentSubs',parentSub::get())->with('childSubs',childSubs::get());

查看

<table class="table datatable_simple">
                <tbody>
                    @foreach($parentSubs as $parentSub)
                        <tr> 
                            <td><em>{{{$parentSub->component_name}}}</em></td>
                        </tr>
                    @endforeach
                </tbody>
                <tbody>
                   @foreach($childSubs as $childSub)
                    <tr>
                        <td>{{{$childsub->survey_question}}}</td>   

                    </tr>
                    @endforeach
                </tbody>
            </table>

2 个答案:

答案 0 :(得分:0)

尝试以下:

select (select b.component_name from parentSub b where b.ID = a.parent_iD) as component_name ,a.category_name,a.weight,a.actualWeight from childSub a

答案 1 :(得分:0)

您必须加入表并选择所需的数据。这样做(没有雄辩):

$query = DB::table('parentSub')
    ->leftJoin('childSub', 'parentSub.id', '=', 'childSub.parent_id') //Join the child table
    ->get();

var_dump($query); // Dump result