当另一个表中没有行时,如何从MySQL中选择一行

时间:2012-04-21 19:53:26

标签: mysql

我正在尝试从一个表中选择数据,只要在另一个表中没有用户和站点的数据。

这是我到目前为止所做的。

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'。

我该怎么做?

1 个答案:

答案 0 :(得分: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

,那么您在那里命名的列并不重要