Условный поиск ADQL
Я пытаюсь получить некоторые данные из базы данных телескопа Gaia ( https://gea.esac.esa.int/archive/: затем перейдите в "поиск", а затем во вкладку "Дополнительно (ADQL)"). Для этого я использую ADQL (который похож на SQL, но применяется к астрономическим запросам).
Первый поиск - получить все звезды с условием их величины:
SELECT *
FROM gaiadr2.gaia_source
WHERE phot_g_mean_mag-(0.00652*POWER(bp_rp, 3)-0.08863*POWER(bp_rp, 2)+0.37112*bp_rp+0.00895)<=13
Затем, если звезда подтверждает это условие, я хочу получить все звезды в круге с радиусом 0,0208 градуса (5 * 15 угловых секунд). Для этого я выполняю следующий поиск:
SELECT *
FROM gaiadr2.gaia_source
WHERE CONTAINS(POINT('ICRS',gaiadr2.gaia_source.ra, gaiadr2.gaia_source.dec), CIRCLE('ICRS', ra, dec, 0.0208))=1
где ra и dec - координаты звезды, удовлетворяющей первому запросу.
Проблема в том, что у меня есть около 9,5 миллионов звезд, которые удовлетворяют первому запросу, поэтому мне нужно выполнить 9,5 миллионов запросов, чтобы получить окружающие звезды. Интересно, есть ли способ объединить эти два запроса. Я имею в виду следующее: я выполняю первый запрос, и если звезда его удовлетворяет, он автоматически выполняет второй запрос, чтобы получить окружающие звезды и добавить все звезды, которые удовлетворяют второму условию, в файл результатов. Есть ли способ сделать это? Спасибо!
Примечание. Я добавил тег SQL, потому что ADQL аналогичен, и если есть способ выполнить такой условный поиск, то можно будет сделать то же самое в ADQL.