#sql #postgresql #join #inner-join
Вопрос:
Я пытаюсь подсчитать количество записей, в которых имя человека начинается с B, а дата создания записи-до 01-01-2021. Это говорит о том, что я получаю синтаксическую ошибку, но не уверен, почему!
Я должен выполнить два внутренних объединения, потому что в таблице a есть информация о дате создания, в которой указан идентификатор пользователя, совпадающий с таблицей b, в которой указан идентификатор имени клиента, а идентификатор имени находится в таблице c, в которой указана информация о первом имени.
SELECT count(*) as count FROM table_a a
INNER JOIN table_b b ON a.customer_ID = b.customer_id
INNER JOIN table_c c b.customer_id ON = c.name_id
WHERE c.first_name like 'B%'
AND a.created_date::text like '2021-01-01%'
group by count
Может кто-нибудь, пожалуйста, помочь мне объяснить, что не так с моим синтаксисом? Большое спасибо!
Комментарии:
1. У вашего второго ВНУТРЕННЕГО СОЕДИНЕНИЯ есть проблема:
INNER JOIN tablc_c c b_customer_id
это неправильно. Прочитайте свое первое ВНУТРЕННЕЕ ОБЪЕДИНЕНИЕ и посмотрите, сможете ли вы понять, что изменилось.2.
LIKE
не используется для значений дат, только для строк, иLIKE
не собирается указывать даты, которые меньше 01-01-2021. Вам также не нужно::text
указывать после столбца даты, так как вы хотите, чтобы он все еще был датой.