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

标签 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'”。

我该怎么做?

最佳答案

这里应该可以工作:

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 中选择所有内容,并在 WHERE 子句中使用 uc.site_id IS NULL,确保那里另一个表中没有行。实际上,你在那里命名哪一列并不重要,只要它来自 user_clicks

关于mysql - 当另一个表中没有行时如何从MySQL中选择一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10262457/

相关文章:

php - 将 Google map API V2 升级到 V3

MySQL 根据日期从多个表中获取结果

mysql - Zend DB 和条件案例语句

mysql - 如何存储日期范围?

mysql - 删除 MySQL 上的重复行(至少保留一个)

mysql - 在插入新数据之前截断表

PHPUnit 数据库测试。固定装置没有设置?

php - 从 mysql 回显更多行

c++ - 通过程序连接到 MySQL 安全吗?

php - 计算重复项并使用分组项创建数组 | PHP