0
我有一個非常複雜的數據庫查詢,但我想知道或有可能將其縮短並通過口才更容易嗎? 我的模特和他的分貝是:來自DB的Laravel雄辯
class Order extends Model
{
public $timestamps = false;
public $incrementing = false;
public function products()
{
return $this->hasMany(OrderProducts::class);
}
public function statuses()
{
return $this->belongsToMany(OrderStatusNames::class, 'order_statuses', 'order_id', 'status_id');
}
public function actualKioskOrders()
{
return
$rows = DB::select("SELECT o.id, o.number, o.name client_name, o.phone,
o.email, o.created_at order_date, osn.name actual_status
FROM orders o
JOIN order_statuses os ON os.order_id = o.id
JOIN (SELECT o.id id, MAX(os.created_at) last_status_date FROM orders o
JOIN order_statuses os ON os.order_id = o.id GROUP BY o.id) t
ON t.id = os.order_id AND t.last_status_date = os.created_at
JOIN order_status_names osn ON osn.id = os.status_id
WHERE os.status_id != 3");
}
}
哇,但這個選擇只適用於ORS在這種情況下?因爲我需要來自另一個連接表的其他列的數據。我可以選擇這個嗎? – wenus
是的,你可以,就像你會做一個sql查詢一樣,前綴表名。這將返回您填充選定列的模型集合。 –
哦,它非常difficut改變我的查詢雄辯! – wenus