Мне интересно, почему приведенный ниже запрос не возвращает записей. "theTable" появляется дважды, и это одна и та же таблица. Я просто хочу получить для всех item_id, соответствующих указанному c chal_id (888888 в данном случае), какие записи есть в этой таблице (theTable). Запрос должен как минимум возвращать записи с указанным c chal_id (888888), верно?
item_id и chal_id являются типами данных bigint. data - это столбец раздела, поэтому его необходимо включить в предложение where.
Обратите внимание, что предложение where «chal = 888888 и дата между« 20200610 »и« 20200710 »фактически возвращает 260 тыс. записей. Я запустил часть внутри (), чтобы убедиться, что она не возвращает запись 0.
select *
FROM theTable t0 INNER JOIN
(select item_id AS item_id_1
from theTable
where chal = 888888 and date between '20200610' and '20200710'
) t1
ON t0.item_id = t1.item_id_1
WHERE t0.date between '20200610' and '20200720'```