Где в столбце «Новое создание»

#mysql #laravel

Вопрос:

У меня есть недавно созданная колонка

 $query-gt;select([  "table1.*",  DB::raw("  CASE  WHEN table2.updated_at gt;= table1.updated_at  THEN table2.updated_at  ELSE table1.updated_at  END as last_update  ")  ]);  

Теперь я хочу найти таблицу, в которой last_update находится между » с » и «до», мое текущее решение:

 $query-gt;where(function ($query) {  $query-gt;where("table1.updated_at", 'gt;=', $this-gt;since);  $query-gt;orWhere("table2.updated_at", 'gt;=', $this-gt;since);  });  
 $query-gt;where(function ($query) {  $query-gt;where("table1.updated_at", 'gt;=', $this-gt;till);  $query-gt;orWhere("table2.updated_at", 'gt;=', $this-gt;till);  });  

Как я могу использовать столбец «last_update» или использовать столбец «где на» с более новым значением update_at?

Ответ №1:

$query-gt;having("last_update", 'gt;=', $this-gt;since) Решив мою проблему.

Ответ №2:

вы можете запросить table1 и присоединиться table2 , и в обеих таблицах вы можете вызвать предложение where:

 Table1::with(['table2' =gt; function ($query) {  $query-gt;where('updated_at', 'gt;=', $this-gt;since); }]) -gt;where('updated_at', 'gt;=', $this-gt;since) -gt;get();