Pregunta

Tengo 3 tablas PPC_OFFERS, Survery_Ofergers, Find_Offers (de la sección de administración, ingreso los datos en estas tablas)

Ahora en la parte delantera, quiero mostrar las últimas 3 ofertas de estas tablas.

es.Los últimos 3 vendrán, pueden ser de una mesa única o mesas múltiples ... solo tiene condición "Últimos 3"

¿Cómo puedo hacer esto?

¡Laravel proporciona alguna forma de hacer esto?

¿O necesito tener alguna tabla maestra?

¿O puede sugerirme una consulta de SQL regular para esto?

por favor ayuda. Gracias.

Tabla PPC:

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

Tabla de encuestas:

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

Encontrar tabla de código:

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

¿Fue útil?

Solución

Como recomendación, podría tener más sentido incluir las 3 de estas ofertas en una tabla y usar una identificación de "oferta" "para distinguirlas entre sí, en lugar de usar 3 tablas diferentes.Podría simplificar su código.

Creo que esto puede trabajar con su configuración actual:

$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();

Otros consejos

Hacer 3 consultas sindicalizarlas con los mismos nombres para las columnas

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

(

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top