MAIN TABLE
id | parent_id | form_id | is_approved | fruit_id
------------------------------------------------------
1 | 0 | 1 | 1 | 1
2 | 1 | 2 | 1 | 2
3 | 0 | 1 | 1 | 3
4 | 3 | 2 | 0 | 4
FRUIT TABLE
id | name
------------
1 | cherry
2 | guava
3 | apple
4 | grapes
通过在主表上引用,我需要从Fruit Table中输出具有以下内容的行的所有水果名称:
1。)parent_id!= 0
2。)is_approved = 1
怎么做?请帮忙!
答案 0 :(得分:0)
$fruitNames = DB::table('main')->where([['parent_id', '>=', 1],['is_approved', '=', 1]])->join('fruit_names')->get(['fruit_names.name']);
答案 1 :(得分:0)
我做到了!
$fruitNames = main::select('main.id', 'b.name')
->join('fruit_names as b', 'b.id', '=', 'main.fruit_id')
->join('main as c', 'c.id', '=', 'main.parent_id')
->where('main.parent_id', '!=', 0)
->where('c.is_approved', 1)
->get();
我想知道这个查询是否可以改进。
答案 2 :(得分:0)
假设你有一个水果模型,主要关系你可以做到这一点,它会给你一系列符合你标准的水果模型。
$fruits = Fruit::whereHas('main', function ($query) {
$query->where('parent_id', '!=', 0)
->where('is_approved', 1);
})->get();