Получение неизвестного столбца 'users_personals.user_id' в 'where clause' в моем sql-запросе - PullRequest
2 голосов
/ 13 марта 2019

Я не знаю, почему это происходит, поскольку все они существуют:

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'

1 Ответ

3 голосов
/ 13 марта 2019

Таблица users_personals в запросе имеет псевдоним p.

Возможно, вы захотите изменить это:

WHERE u.id=users_personals.user_id

На:

WHERE u.id=p.user_id

NB. Что касается ваших проблем, ваш 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'
...