SQL-поиск с внешним ключом - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть две таблицы: пиво и пивоварня

Schema::create('breweries', function (Blueprint $table) {
   $table->increments('id');
   $table->unsignedInteger('user_id');
   $table->foreign( 'user_id' )
         ->references( 'id' )->on( 'users' )
         ->onUpdate( 'cascade' );
   $table->string('brewery_name');
   $table->timestamps();
});

и

Schema::create('beer', function (Blueprint $table) {
   $table->increments('id');
   $table->unsignedInteger('brewery_id');
   $table->foreign( 'brewery_id' )
         ->references( 'id' )->on( 'breweries' )
         ->onUpdate( 'cascade' );
   $table->string('beer_name');
   $table->timestamps();
});

Я хочу выполнить поиск по именам пива и пивоваренного завода.

Для поиска только по пивуЯ использую следующий запрос:

$beer = Beer::where('user_id', Auth::id())
         ->where(function($query) use ($search) {
           $query->where('beer_name','LIKE','%'.$search."%")
                 ->orWhere('brewery_id','LIKE','%'.$search."%")
        })->get();

, и это прекрасно работает, так как 'beer_name' и 'brewery_id' являются полями таблицы пива.

Как я могу изменить этот запростак что я ищу также 'brewery_name' (= часть таблицы brewery) вместо brewery_id?

1 Ответ

0 голосов
/ 24 декабря 2018

Поскольку это было помечено SQL, я отвечаю Sql-запросом, а не php (?) Кодом

SELECT * 
FROM beer b
JOIN breweries r ON r.id = b.brewery_id
WHERE b.beer_name LIKE ?
   OR r.brewery_name LIKE ?

Заменить?с термином поиска пива и термином поиска пивоварни соответственно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...