у меня есть домашнее задание: Мы хотим найти все вопросы о библиотеке python pandas, а также ответы на них. Напишите запрос, который извлекает все вопросы, в заголовке которых содержится слово «панды», из таблицы posts_questions, а также все соответствующие ответы на каждый такой вопрос из таблицы post_answers, где каждая строка в возвращаемой таблице будет представлять пару (вопрос + ответ). Если у вопроса есть число ответов, один и тот же вопрос появится в нескольких строках возвращаемой таблицы. вернулся и вопроса, а также следующие поля: id, title, tag, answer_count score, время создания (creation_date) и тело текста (тело) как вопроса, так и ответа. Для тела все символы косой черты должны быть удалены в строке '\n'.
для этого я написал следующий код SQL:
SELECT tb1.id as q_id,tb1.title as q_title,tb1.tags as q_tags
,tb1.creation_date as q_creation_date,tb1.score as q_score,tb1.answer_count as q_answer_count
,REPLACE(tb1.body,'\n',' ') as body_qustion,REPLACE(tb2.body,'\n',' ') as body_answer
from `bigquery-public-data.stackoverflow.posts_questions` as tb1
left join `bigquery-public-data.stackoverflow.posts_answers` as tb2
on tb1.id=tb2.id
where( tb1.title like "%pandas%" or tb1.title like "%Pandas%" or tb1.title like "%PANDAS%")
group by tb1.id ,tb1.title ,tb1.tags,tb1.creation_date,tb1.score
,tb1.answer_count,body_qustion,body_answer
но проблема в том, что когда, например, на вопрос у меня есть 3 ответа, я ожидаю, что он вернет 3 строки для вопроса, вместо этого он возвращает только одну, и я не знаю, в чем проблема.
данные: bigquery-public-data.stackoverflow.posts_questions
и bigquery-public-data.stackoverflow.posts_answers:


Вы присоединились с неправильным идентификатором таблицы ответов. В столбце идентификатора таблицы ответов представлен идентификатор самого ответа, тогда как parent_id представляет собой идентификатор вопроса. Вы можете поиграть с приведенным ниже запросом, чтобы получить больше понимания.
Запрос:
SELECT
q.id AS q_id #id of the question in question table
,
a.id AS a_id #id of the answer in answer table
,
q.title AS q_title,
q.tags AS q_tags,
q.creation_date AS q_creation_date,
q.score AS q_score,
q.answer_count AS q_answer_count,
REPLACE(q.body,'\n',' ') AS body_qustion,
REPLACE(a.body,'\n',' ') AS body_answer
FROM
`bigquery-public-data.stackoverflow.posts_questions` q
LEFT JOIN
`bigquery-public-data.stackoverflow.posts_answers` a
ON
q.id = a.parent_id #Joining with quesiton Ids
WHERE
LOWER(q.title) LIKE '%pandas%'
AND q.creation_date BETWEEN '2021-01-01'
AND '2021-01-31'
AND q.answer_count >1
Выход: