2

仅当另一个表中没有用户和站点的数据时,我才尝试从一个表中选择数据。

这就是我到目前为止所拥有的。

SELECT 
    l.link_id,
    l.link_name,
    l.link_points,
    l.link_time,
    COUNT(uc.user_id) AS clicks
FROM 
    links AS l LEFT OUTER JOIN
    (SELECT user_id, site_id FROM user_clicks WHERE site_id = l.link_id AND user_id = ".$user['user_id'].") as uc
    USING (link_id)
GROUP BY
    l.link_id

这是我目前的尝试,但是当我试图在外部连接中提取数据时,我得到“'where 子句'中的未知列'l.link_id'”。

我该怎么做?

4

1 回答 1

1

这应该工作:

SELECT 
    l.link_id,
    l.link_name,
    l.link_points,
    l.link_time,
    COUNT(uc.user_id) AS clicks
FROM 
    links AS l LEFT JOIN
    user_clicks uc ON uc.site_id = l.link_id 
WHERE user_id = ".$user['user_id']."
    AND uc.site_id IS NULL
GROUP BY
    l.link_id

LEFT JOIN 从表中选择所有内容,links并使用您确保在另一个表中没有行uc.site_id IS NULL的子句。WHERE实际上,您在那里命名哪一列并不重要,只要它来自user_clicks

于 2012-04-21T20:08:46.913 回答