# #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. похоже, что в таблице 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;