每个项目的附加查询?

时间:2013-11-26 09:37:35

标签: mysql database-design data-structures

我有一长串。即:

$query = mysql_query("SELECT i.id
            ORDER by i.id DESC LIMIT 0, 200"); 
while($row = mysql_fetch_array($query)){ $num_row++;
}

输出:

[项目1] [项目2] [项目3] ...... [项目200]

这就是事情。如果用户 喜欢该项目,我需要检查每个项目。我是否必须为第一个项目查询的每一行启动一个额外的查询?我们正在讨论200个查询...是否可以将此查询加入到第一个查询中?

我正在考虑如此构建“like”表:

id, item_ref, user_id
----------------------
1,     1,     5
1,     5,     5
1,     3,     5

以user_id 5登录时应显示:

[项目1喜欢] [项目2] [项目3喜欢] [项目4] [项目5喜欢] ... [项目200]

任何提示?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以加入相似的表格并使用它来查看特定用户是否有类似内容。你错过了一些你的查询,但是(假设你使用你提到的那样的表):

SELECT i.id, l.id IS NOT NULL AS liked
FROM item i
LEFT JOIN likes l ON (i.id = l.item_ref AND l.user_id = YOURUSERIDHERE)
ORDER by i.id DESC LIMIT 0, 200
结果中的

liked是给定用户是否有类似内容。