Выбрать тело из больших данных reddit только тогда, когда существует родительское тело данных? - PullRequest
0 голосов
/ 11 сентября 2018

В больших данных reddit запроса есть текст комментария, идентификатор комментария и идентификатор родительского комментария. Мне нужен запрос, который может работать в большом запросе. (Я утверждаю это, потому что стандартный синтаксис большого запроса пропускает пару операторов SQL, таких как «while»). Этот оператор должен выбирать тело комментария только тогда, когда родительский комментарий не является нулевым.

Таким образом, в основном запрос должен прочитать первую строку, найти родительский идентификатор этого комментария, проверить базу данных, чтобы увидеть, не имеет ли этот идентификатор комментария тело, которое не является пустым, и, если это так, вернуть базу данных, где каждая строка просто {столбец один - это тело комментария} {второй столбец - это родительское тело}

Я пытался думать, как "SELECT parent_id , тело ОТ table ГДЕ (ВЫБРАТЬ тело ОТ table ГДЕ id = parent_id )! = NULL "

Вышеупомянутое утверждение сработало бы, если бы я мог найти способ, где parent_id будет таким же. Любая помощь?

EDIT:

SELECT SPLIT (parent_id, "_") [OFFSET (1)] как q1, тело ОТ fh-bigquery.reddit_comments.2008 ГДЕ (тело ВЫБРАТЬ из fh-bigquery.reddit_comments.2008, где id = q1)! = Ноль

Этот запрос будет работать, если он установит parent_id как переменную типа q1, а затем будет использовать ее как q1.

Любая помощь в том, чтобы заставить это работать?

1 Ответ

0 голосов
/ 15 сентября 2018

Вы должны использовать INNER JOIN ...

SELECT
  t1.body
  t1.parent_id,
  t2.body AS parent_body
FROM
  `fh-bigquery.reddit_comments.2008` t1
INNER JOIN
  `fh-bigquery.reddit_comments.2008` t2
ON
  SPLIT(t1.parent_id, '_')[ OFFSET (1)] = t2.id
WHERE
  t2.body IS NOT NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...