0

在 SO 上发现了类似的问题,但没有任何帮助。这是我的问题:

我有一张桌子,“事件”,会相当大。还有这两个表:“照片”和“视频”。每个“事件”记录都有一个 eid(事件 id)。每个“照片”和“视频”记录都有一个 aeid(关联事件 ID)。

要获取 20 个事件的事件数据,我目前正在运行 PHP,如下所示:

array = get top 20 events
for these 20 events
  array['photos'] = get all photos
  array['videos'] = get all videos
return events array

我发现这运行得太慢了。可能是因为这相当于 41 个 mysql 查询。我意识到我需要以某种方式使用 JOIN(我想我至少这样做了),但我无法弄清楚我们如何构建我的查询,以便它以与我在上面的伪代码中相同的方式嵌套照片和视频. 另外,我认为我没有时间切换到 postgres(除非非常强烈建议);我正在使用足够大的代码库,这让只有一个开发人员(我)感到头疼。

如果您发布它们,我愿意阅读文件/手册。但是,我已经在几个地方这样做了,但无济于事。谢谢!

4

1 回答 1

0

尝试类似..

 SELECT E.eid, V.aeid, P.aeid 
 FROM events E, videos V, photos P 
 WHERE E.eid='$ID' and V.aeid='$ID' and P.aeid='$ID' 
 ORDER BY E.eid desc

未经测试,但你应该明白这一点

于 2013-02-15T20:34:47.587 回答