Неизвестный столбец ‘r.user_id’ в предложении ‘where’

#sql #where #clause

#sql #где #предложение

Вопрос:

Мне удалось исправить этот запрос frankenstein, но я получаю сообщение об ошибке Unknown column 'r.user_id' in 'where clause'

Может кто-нибудь, пожалуйста, помочь мне с этим? Я дал последней части псевдоним, но вложенный подзапрос не может его распознать. Поиск в Google подсказывает мне использовать group by, но я не могу понять, где.

Спасибо

 SELECT 
r.id, r.state,

count((SELECT dog.ip_address

FROM

(SELECT DISTINCT ip_address COLLATE utf8_unicode_ci AS ip_address
FROM previous_state_transitions
WHERE user_id = r.user_id

UNION

SELECT DISTINCT ip_address COLLATE utf8_unicode_ci AS ip_address
FROM previous_state_transitions
WHERE state_machineable_id = r.user_id
AND state_machineable_type = "User"

UNION 

SELECT DISTINCT ip_address
FROM reviews 
WHERE user_id = r.user_id) AS dog

INNER JOIN

(SELECT DISTINCT ip_address COLLATE utf8_unicode_ci AS ip_address
FROM previous_state_transitions
WHERE user_id IN (SELECT user_id FROM company_user_roles WHERE company_id = r.company_id)

UNION

SELECT DISTINCT ip_address COLLATE utf8_unicode_ci AS ip_address
FROM previous_state_transitions
WHERE state_machineable_id = (SELECT user_id FROM company_user_roles WHERE company_id = r.company_id)
AND state_machineable_type = "User"

UNION 

SELECT DISTINCT ip_address
FROM reviews 
WHERE user_id = (SELECT user_id FROM company_user_roles WHERE company_id = r.company_id)) AS cat

ON dog.ip_address = cat.ip_address)) AS ip_count_in_common

FROM reviews AS r
WHERE r.created_at > '2016-10-13'
ORDER BY 1 desc
 

Ответ №1:

Вам необходимо включить предложение GROUP BY перед предложением Order By, которое включает r.id и r.государство.

Например, очень простой запрос будет…,

 SELECT id, name, count(*) from maker GROUP BY id, name
 

Комментарии:

1. Я все еще получаю ту же ошибку. Я не пытаюсь подсчитать количество отзывов или что-то в этом роде. Сколько общих IP-адресов у пользователя и компании.