【发布时间】:2019-09-23 22:48:58
【问题描述】:
我有一张存放活动的桌子。前端将所有事件显示为卡片。一个事件,一张卡片。我还有一个包含订阅的表。一个事件,许多订阅。
有没有办法通过单个查询检索所有事件及其所有订阅?
目前,我进行查询以获取所有事件,然后运行循环并为每个事件运行查询以获取其订阅。因此,随着事件数量的增加,子查询(和数据库连接)的数量也会增加。这就是为什么我想知道是否可以将其减少为单个查询。
event subscription
+----------+ +------------+
id id
name user
location age
date event_id
... ...
试图让我的问题更容易:P
为了简化它,想想 Facebook 帖子。 Facebook 会显示该帖子和所有喜欢它的用户,对吧?那么,有没有办法将所有帖子和所有喜欢每个帖子的用户名放在一个查询中?
【问题讨论】:
-
如果您正在寻找一个简单的连接,那么 GMB 有一个解决方案,或者您是否试图让它只有一个事件行包含所有订阅数据,那么这将是一个不同的设置。
-
为了确认下面的答案,您的订阅表中有
event_id吗? -
@Ibu 是的,有。
-
您计划如何显示结果会产生很大的不同。
-
简单示例:我有事件 A 和事件 B。事件 A 有 2 个订阅。事件 B 有 3 个订阅。我想要一个查询,它将为我带来所有事件和每个事件的所有订阅。然后,我会显示如下:
Event A => 1st subscription data => 2nd subscription dataEvent B => 1st subscription data => 2nd subscription data => 3rd subscription data