Domanda

Ho 3 tavoli PPC_Offerri, Survery_Offerri, Find_Offers (dalla sezione di amministrazione, inserisco i dati in queste tabelle)

Ora sul front End, voglio visualizzare le ultime 3 offerte da queste tabelle.

I.e.Ultimi 3 arriverà, possono essere da tavolo singolo o tavolini multipli ... ha solo condizioni "Ultimi 3"

Come posso fare questo?

La Laravel offre un modo per farlo?

o devo avere qualsiasi tavolo principale?

o puoi suggerirmi una normale query SQL per questo?

Aiuto. Grazie.

Tabella PPC:

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

Tabella del sondaggio:

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

Trova tabella del codice:

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

È stato utile?

Soluzione

Come raccomandazione, potrebbe rendere più senso includere tutte e 3 queste offerte in una tabella e utilizzare un ID "Offer_type" per distinguerli l'uno dall'altro, invece di utilizzare 3 diverse tabelle.Potrebbe semplificare il tuo codice.

credo che questo possa funzionare con la tua configurazione corrente:

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

Altri suggerimenti

Crea 3 query Unione con gli stessi nomi per le colonne

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
.

(

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top