我有3张桌子ppc_offers,survery_offers,find_offers(来自管理部分,我将数据输入这些表格)
现在在前端,我想显示这些表格的最新3个优惠。
即。最新的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
--------------------------
答案 0 :(得分:2)
使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
(
答案 1 :(得分:1)
作为建议,在一个表中包含所有这三个商品可能更有意义,并使用“offer_type”id来区分它们,而不是使用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();