Условный поиск 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.

0 ответов

Другие вопросы по тегам