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

Recieving an Unknown column 'users_personals.user_id' in 'where clause' on my sql query

我不知道为什么会这样,因为它们都存在:

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'

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