#mysql #sql #laravel #eloquent #laravel-6
#mysql #sql #laravel #красноречивый #laravel-6
Вопрос:
Я хочу посчитать last_status из истории. Вот как выглядит таблица
--------
p_table
--------
id
name
----------------
history_p_table
----------------
id
p_id (many to one p_table)
status_id (many to one status_table)
date_history
order_history
------------
status_table
------------
id
name
p_table
hasMany
history_table
и history_table
belongsto
status_table
Я хочу получить все количество статусов из last_status (получить last_status, первый статус заказа по date_history DESC, order_history DESC и history.id DESC) история p_table (группа подсчета по last_status)
Я пробовал с SQL, но он все еще выдает ошибку
SELECT
(SELECT status_id FROM history_p
LEFT JOIN status_table ON status_table.id=history_p.status_id
LEFT JOIN p ON history_p.p_id=p.id
GROUP BY status_id, p_id
ORDER BY date_history DESC, order_history DESC, history_p.id DESC) AS last_status,
ss.*, COUNT(last_status) FROM status_table ss
LEFT JOIN status_table su ON su.id=ss.id
GROUP BY last_status
Вот это модель P
class P extends Model{
public function statusNow(){
return $this->historyPs()
->orderBy('date_history','DESC')
->orderBy('order_history', 'DESC')
->orderBy('id', 'DESC')
->first();
}
public function historyPs()
{
return $this->hasMany(AppModelsHistoryP::class);
}
}
Вот это модель HistoryP
class HistoryP extends Model
{
public function status()
{
return $this->belongsTo(AppModelsStatus::class);
}
public function p()
{
return $this->belongsTo(AppModelsP::class);
}
}
Есть ли лучший способ сделать это? Мне нужно, чтобы это было красноречиво, но если нет способа и следует использовать необработанный запрос, это тоже не проблема
Вот это пример данных http://sqlfiddle.com /#!9/73709c
Мне нужно получить
-------------------
Get Packet | 2
Send to Cust | 0
Send to P | 10
Sent to Pab | 1
-------------------
Комментарии:
1. можете ли вы предоставить модели, о которых идет речь
2. Либо создайте онлайн-скрипку, либо предоставьте CREATE TABLE INSERT INTO с некоторыми образцами данных и предоставьте желаемый результат для этих данных.
3. Спасибо за ваши рекомендации, вот это sql db-fiddle.com/f/pJZnKnsed4JqzVW7h3HnKh/1 . Нужна помощь @Strawberry