从查询中排除结果

时间:2011-08-22 21:58:30

标签: mysql sql

我有一个获取当前视频的标签,并将其与其他视频进行匹配以获得结果。唯一的问题是我想排除标签来自的视频(排除特定的vid_id)。我试过以下但是AND vid_id!=some_id行打破了它。有什么想法吗?

$sql = "SELECT video.*,COUNT(*) as count FROM tags LEFT JOIN video 
ON (tags.vid_id = video.vid_id) 
WHERE name IN(?,?) AND vid_id!=some_id 
GROUP BY vid_id ORDER BY count DESC LIMIT 5";

1 个答案:

答案 0 :(得分:3)

  1. 您是否忘记在ON子句后关闭括号

  2. 此外,由于您的vid_id列同时出现在视频表中 在标签表中,您需要指定表中的表名 WHERE-clause (是的,即使ON语句要求它们 等于)

  3. 这给出了:

    $sql = "SELECT video.*,COUNT(*) as count 
    FROM tags 
    LEFT JOIN video 
    ON (tags.vid_id = video.vid_id)
    WHERE name IN(?,?) 
    AND video.vid_id != some_id 
    ORDER BY count DESC 
    LIMIT 5";