sql - 在 cassandra 和 sql 中连接表
问题描述
我有一个查询如下:
SELECT distinct(T1.USER_ID)
FROM T1
LEFT OUTER JOIN T2
ON (T1.USER_ID = T2.USERID)
WHERE T2.USERID IS NULL
AND T1.enrolled_date < some_timestamp;
我需要了解这与以下内容有何不同:
SELECT distinct(T1.USER_ID)
FROM T1
WHERE T1.USER_ID IS NULL
AND T1.enrolled_date < some_timestamp;
因为我们在 T1 和 T2 上进行左连接,条件是两个用户 ID 相同并检查 t2.user_id 是否为空,我们不能只检查 t1.user_id 是否为空吗?
我需要在 Cassandra 上实现这个(使用 DataStax),因此我想知道是否可以避免加入。
解决方案
此查询是说“从 t1 获取所有唯一的 user_id,这些 user_id 在 t2 中没有存在(t2.userid 为空),其注册日期的值小于 some_timestamp 值
SELECT distinct(T1.USER_ID)
FROM T1
LEFT OUTER JOIN T2
ON (T1.USER_ID = T2.USERID)
WHERE T2.USERID IS NULL
AND T1.enrolled_date < some_timestamp;
重写的查询不等同于上面的查询。它说,从单个表 t1 中获取所有唯一的 user_id (NULL),它的注册日期小于 some_timestamp
SELECT distinct(T1.USER_ID)
--I guess you missed the FROM T1 portion???
WHERE T1.USER_ID IS NULL
AND T1.enrolled_date < some_timestamp;
推荐阅读
- c# - Quickbooks 桌面集成退出而不在不同的计算机上启动
- python - 我的直方图条未显示并被切断
- python - 如何解决指向 t 的 Python 语法错误打印?
- oracle - Oracle 12.2:如何让 SQL*Plus 或 SQL Developer 提示用户输入变量?
- python - 我想将此嵌套列表转换为一组
- javascript - Javascript 数字 0 显示为未定义
- c++ - 从数组中选择至少两个元素使得它们的 GCD 为 1 且成本最小的问题的解释
- mapbox - Mapbox 标记样式/CSS 在 Angular 8 应用程序中不起作用
- javascript - 如何从文件输入中反序列化 JSON 字符串
- flutter - 如何自动更新文本而不是 Flutter 中的按钮?