gpt4 book ai didi

mysql - 最不受欢迎的事件 - 获取预订为空或最少的事件列表

转载 作者:行者123 更新时间:2023-11-29 21:05:59 25 4
gpt4 key购买 nike

我有两个表:事件和预订一场事件有多个预订

Event          Bookings  1               1  1               2  1               3  2               //consider this as no row in bookings table  3               4  3               5  3               6  4  

I need to get list of events that have no bookings, that is there is no foreign key reference of events_id in bookings table.so here Event 2 and 4.If all the events have some bookings then the one with least bookings shows up.

$query = select E.id, E.name, 
count('B.event_id')
as totalbookings
from events E, bookings B where E.id = B.event_id
group by B.event_id;

获取所有事件的列表以及包含部分预订的事件的总预订量。

如何获取根本没有预订的事件数据?

最佳答案

好的。那么,您需要获取没有预订的事件吗?让我们看看这里的一些解决方案。

我们可以使用 Eloquent 来完成类似的事情。

假设您有一个包含以下方法的事件模型:

public function bookings()
{
return $this->hasMany(Bookings::class, 'FK', 'PK');
}

以及一个包含以下方法的 Bookings 模型:

public function event()
{
return $this->belongsTo(Event::class, 'FK', 'PK');
}

您可以在 Controller 中执行类似的操作:

$events = 事件::whereHas('bookings')->get()->count();

这将获取所有与预订相关的事件的集合并对其进行计数。这 Eloquent 地解决了一个问题,现在针对没有预订的事件。

Laravels Eloquent ORM 没有我们可以使用的 hasNot 方法,但是我们可以使用 Eagarloading 约束来实现您需要的结果。

我们可以通过执行以下操作来获取所有没有预订的事件:

$events = Events::whereHas("bookings", function($q) {
$q->whereNotNull('deleted_at');
}, '<', 1)->get();

我相信这应该为您提供所有没有预订的事件的集合。

让我知道你过得怎么样!

关于mysql - 最不受欢迎的事件 - 获取预订为空或最少的事件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36822652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com