Код подзапросов SQL, возвращающий неожиданные результаты: «Этот запрос не дал результатов».

# #sql #google-bigquery #subquery

Вопрос:

Я попробовал этот код подзапросов SQL в соответствии с видеоуроком, но при запуске он вернул неожиданные результаты: «Этот запрос не дал результатов». Я скопировал слово в слово, включая имена таблиц базы данных. С синтаксисом проблем нет, так как база данных не выдавала никаких сообщений об ошибке. Я прикрепил ниже пример кода. P/S: Все имена таблиц и их путь верны в соответствии со ссылкой на изображение.

 SELECT  station_id,  name FROM   bigquery-public-data.new_york.citibike_stations WHERE   station_id IN  (  SELECT   start_station_id  FROM   bigquery-public-data.new_york.citibike_trips  WHERE  usertype = 'subscriber'  )   

изображение кода и возвращаемый результат, указывающий на то, что «Этот запрос не дал никаких результатов». :

1

Комментарии:

1. похоже, что в таблице citibike_trips нет строки с типом пользователя = «подписчик» или нет строк в таблице citibike_stations с возвращенным идентификатором станции из подзапроса

2. поместите некоторые данные, а не прикрепляйте изображение

Ответ №1:

Первое, что нужно сделать, это подтвердить, что между этими двумя подзапросами есть совпадающие идентификаторы станций. Если есть, то вы можете использовать общее табличное выражение, как показано ниже.

 WITH trip_ids AS (  SELECT start_station_id  FROM bigquery-public-data.new_york.citibike_trips  WHERE usertype = 'subscriber' ) SELECT station_id, name FROM bigquery-public-data.new_york.citibike_stations b INNER JOIN trip_ids ON b.station_id = trip_ids.start_station_id;