У меня есть следующие два SQL запроса:
1.
"""
SELECT a.id, a.body, a.owner_user_id
FROM `bigquery-public-data.stackoverflow.posts_questions` AS q
INNER JOIN `bigquery-public-data.stackoverflow.posts_answers` AS a
ON q.id = a.parent_id
WHERE q.tags LIKE '%bigquery%'
"""
"""
SELECT a.id, a.body, a.owner_user_id
FROM `bigquery-public-data.stackoverflow.posts_answers` AS a
INNER JOIN `bigquery-public-data.stackoverflow.posts_questions` as q
ON q.id = a.parent_id
WHERE q.tags LIKE "%bigquery%"
"""
Я знаю, что второй намного дороже. Я хочу знать, почему это так.
Мое предположение - Сначала извлекается 1 post_questions
, и нам нужно l oop только для идентификаторов вопросов, но в 2 нам нужно l oop над родительскими идентификаторами ответа. Поскольку ответов намного больше, чем вопросов, второй оказывается дороже.
Я прав? Кроме того, правильно ли я предполагаю, что конечный результат двух запросов будет одинаковым?