如何在Laravel中以“ LIKE”条件搜索两个表

时间:2019-05-03 10:45:02

标签: laravel

我有一个小的laravel项目,它在来自2个相同结构表的LIKE条件下进行搜索。下面是示例

Table1                    
id         name           
1          Ryan Cole
2          Bailey Henderson

Table2                   
id         name           
1          Anna Henderson
2          Corey Allen

对不起,我没有代码,但是下面是我需要的结果。

A)用单词'Henderson'搜索单个查询,预期结果应为:

[ {'id':2, 'name':'Bailey Henderson'}, {'id':1, 'name':'Anna Henderson'} ]
//because of 'Henderson' contain on both table.

B)用单词'Ryan'搜索,结果应为:

[ {'id':1, 'name':'Ryan Cole'} ]
//because of 'Ryan' only contain in table1.

C)用单词'Corey'搜索,结果应为:

[ {'id':2, 'name':'Corey Allen'} ]
//because of 'Corey' only contain in table2.

非常感谢任何建议或指导。

1 个答案:

答案 0 :(得分:1)

您是否在查询生成器中尝试过“联盟”?

$a = DB::table("table1")
    ->select("table1.id", "table1.name")
    ->where('name', 'like', "%$searchTerm%");

$b = DB::table("table2")
    ->select("table2.id", "table2.name")
    ->where('name', 'like', "%$searchTerm%");

$a->union($b)
  ->get();