减少选择多表时的查询次数。

问题描述 投票:0回答:1

目标。 为每行显示多个标签(就像下面的stackoverflow的例子)

详情。 每一条记录都是表""的查询结果。新闻'(下面的查询1)。然后,我从表''中调用第二个查询。标签'(下文查询2)。

查询。

  1. 选择新闻的查询。

    SELECT * FROM news

  2. 查找标签的查询--在PHP中。foreach statemnt:

    SELECT DISTINCT t.* FROM tags INNER JOIN joiner j ON j.news_id = t.tag_id INNER JOIN news n ON n.news_id = j.news_id WHERE n.news_id = XXXXXXX

在PHP中循环时,XXXXX是当前的新闻ID,这就是问题所在。

问题。

  1. 如果我显示 10条新闻 文章,这导致 1次查询 以获得新闻和 10次查询 来获取标签。有什么更好的方法来处理显示 每页200条新闻?

  2. 对于CodeIgniter用户来说,是否有一种简化的方法可以在DB构建器中使用?

enter image description here

请注意。 如果有什么需要详细说明的,请评论。

php mysql codeigniter tags subquery
1个回答
0
投票

下面是一个查询的例子...

SELECT c.olumns
     , y.ou
     , a.ctually
     , w.ant
  FROM news c
  JOIN joiner y
    ON y.news_id = c.news_id
  JOIN tags a
    ON a.tag_id = y.tag_id

声明:我不是一个程序员


0
投票

这个问题在问题下面的评论中得到了回答。

© www.soinside.com 2019 - 2024. All rights reserved.