试图从数据库中抓取用户没有看到的东西

时间:2012-02-14 10:57:24

标签: mysql

我有多个数据库可以获取信息。我有一个显示用户查看过的页面以及单独的用户数据库。我想要做的是找到用户没有看到的所有页面。此时只是做!= user_id不起作用,因为它只显示其他人查看了各种页面。

所以我需要基本上检查所有页面记录,看看用户是否在那里,并返回用户没有看到的ID。

这就是我现在所处的位置:

SELECT video_id, ads_general.id, id_inc, user_id
FROM ads_general
LEFT JOIN ads_viewed ON (
ads_viewed.video_id = ads_general.id
)

结果:

video_id    id  id_inc  user_id
gd27hcsc    gd27hcsc    1   1
k2ku1mkp    k2ku1mkp    2   1
umym9ivq    umym9ivq    3   1
umym9ivq    umym9ivq    3   5
5l66bd0f    5l66bd0f    4   1
5l66bd0f    5l66bd0f    4   4
NULL    vvw54epx    5   NULL

此查询显示视频的ID和查看该页面的用户。

1 个答案:

答案 0 :(得分:0)

您是否尝试选择user_id未归属的任何video_ids(尚未看到)?

您可能需要在查询中添加DISTINCT,所以:

SELECT DISTINCT video_id
...
WHERE User_Id != [user_id]

这将确保每个人只回来一次。