Как выполнить поиск с условием LIKE для двух таблиц в Laravel - PullRequest
0 голосов
/ 03 мая 2019

У меня есть небольшой проект laravel, работающий над поиском с условием LIKE из 2 таблиц той же структуры. Ниже приведен пример

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 Ответ

1 голос
/ 03 мая 2019

Вы пробовали "объединение" в построителе запросов?

$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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...