sql - 如果列名不同,WHERE IN 语句为什么或如何工作?
问题描述
所以我想创建一个仅显示usertype = 'Subscriber'
. 因此,我构建了一个内部查询来从表中提取usertype
和匹配,并与表中的和匹配。2张不同的桌子。我想知道如果两个列名都不同,该语句为什么或如何工作??start_station_id
citibike_trips
name
station_id
citibike_stations
WHERE IN
start_station_id != station_id
解决方案
整个查询的逻辑是从等于“订阅者”的表中获取值start_station_id
,然后使用提取的值在表中进行citibike_trips
查询。因此,当您运行整个查询时,从子查询中提取的任何不存在于表列中的内容都不会包含在输出中。usertype
citibike_stations
start_station_id
citibike_stations
station_id
如果您只想选择带有条件的行,start_station_id != station_id
则必须使用NOT IN
语法。
SELECT
station_id, name
FROM `bigquery-public-data.new-york_citibike.citibike_stations`
WHERE station_id NOT IN
(SELECT start_station_id
FROM `bigquery-public-data.new-york_citibike.citibike_trips`
WHERE usertype = 'Subscriber');
推荐阅读
- java - 我们如何将 tensorflow 2.x 模型导入 Java?
- extjs - ExtJS 存储到 POST、GET、PUT 和 DELETE
- sql - 如何旋转/旋转具有任意列数的多个 SQL 表?
- linux - eclipse 文件搜索:如何在非项目文件夹中的工作区中搜索
- python - 处理“在回滚无效事务之前无法重新连接”
- android - 具有重复图像的 RecyclerView 项目
- css - 如何在字体真棒图标上放置文本?
- python - 如何将包含许多记录的文件拆分为较小的记录组
- python - 如何将编辑后的 QGraphicsScene 保存为图像文件
- google-assistant-sdk - Unity 有 Google Assistant 插件吗?