mysql - 在我的 sql 查询中收到 'users_personals.user_id' 中的未知列 'where clause'

标签 mysql sql database querying

我不知道为什么会发生这种情况,因为它们都存在:

SELECT (
    SELECT COUNT(user_id)
    FROM users u
    WHERE 
        u.id=users_personals.user_id
        AND u.status NOT IN (1,2,7)
    LIMIT 1
) as Total
FROM users_personals p 
WHERE 
    p.neighborhoods='Miami Beach'
    AND DATE_FORMAT(created_at, '%Y-%m')>'2018-03'

最佳答案

users_personals 在查询中别名为p

您可能想更改此设置:

WHERE u.id=users_personals.user_id

致:

WHERE u.id=p.user_id

注意:就问题而言,您的 SQL 可能会被简化以避免内联查询的需要。

如果没有看到示例数据和预期输出,就不可能确定......这是一个疯狂的猜测:

SELECT COUNT(*) as Total
FROM users_personals p
INNER JOIN users u
    ON  u.id = p.user_id
    AND u.status NOT IN (1,2,7)
WHERE 
    p.neighborhoods = 'Miami Beach'
    p.created_at >= '2018-04-01'

关于mysql - 在我的 sql 查询中收到 'users_personals.user_id' 中的未知列 'where clause',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55150797/

相关文章:

mysql - 表的两列和另一表的一列的计数

mysql - 这个 SQL 函数有什么问题

MySQL:组函数的使用无效

sql - 将存储过程和其他变量插入临时表

sql - 获取所有没有 child 的记录并且没有将任何 parent 映射到自引用表中? - SQL

database - Google 的 Bigtable 与关系数据库

java - 保护静态 SQL 查询免遭 SQL 注入(inject)

MySQL VARCHAR 类具有 MIN 和 MAX 字符长度的数据类型

mysql - JRValidationException : Report design not valid

sql - 对于每个国家,找到人口最多的城市和该城市的人口