Вопрос

У меня есть 3 таблицы ppc_offers, survery_offers, find_offers (из раздела Admin, я вхожу в данные в эти таблицы)

Теперь на переднем конце, я хочу отобразить последние 3 предложения из этих таблиц.

I.e.Последние 3 придут, они могут быть из одного стола или нескольких таблиц ... У него просто состояние «Последние 3»

Как я могу сделать это?

laravel предоставляет любой способ сделать это?

Или мне нужно иметь какой-либо главный стол?

Или вы можете предложить мне обычный запрос SQL для этого?

Пожалуйста, помогите. Спасибо.

Таблица PPC:

-------------------------
id            |  integer
title         |  varchar
url           |  varchar
description   |  varchar
created_at    |  timestamp
updated_at    |  timestamp
--------------------------
.

Таблица опроса:

-------------------------
id            |  integer
title         |  varchar
created_at    |  timestamp
updated_at    |  timestamp
--------------------------
.

Найти таблицу кода:

-------------------------
id            |  integer
title         |  varchar
url           |  varchar
description   |  varchar
code          |  varchar
created_at    |  timestamp
updated_at    |  timestamp
--------------------------
.

Это было полезно?

Решение

Как рекомендация, возможно, принесет больше смысла включать все 3 из этих предложений в одну таблицу и использовать удостоверение личности «eduepe», чтобы отличить их друг от друга, а не использовать 3 разных таблицы.Это может упростить ваш код.

Я считаю, что это может работать с вашей текущей настройкой:

$ppc = DB::table('ppc_offers')
  ->select('title', 'url', 'description', 'NULL as code', 'updated_at');

$survey = DB::table('survey_offers')
  ->select('title', 'NULL as url', 'NULL as description', 'NULL as code', 'updated_at');

$find = DB::table('find_offers')
  ->select('title', 'url', 'description', 'code', 'updated_at');

return $ppc->unionAll($survey)->unionAll($find)
  ->orderBy('updated_at', 'desc')
  ->take(3)
  ->get();
.

Другие советы

Сделать 3 запроса объединения их с теми же именами для столбцов

select * from

(
 (query1 order by id desc limit 3) x
   union
(query2 order by id desc limit 3) y
   union
(query3 order by id desc limit 3) z
.

(

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top