sql - SQL Advance,创建填充有条件值的新列
问题描述
请您支持下面的问题,我尝试根据条件值在我的 SQL 查询中填充一个新的列。
伪代码:
IF ap_id exists in visit_table and visit_type = 'first'
then firs_tvisit_id = visit_table.visit_id and first_visit_user = visit_table.Username
- 第二次和第三次访问的逻辑相同。
这是访问表。
这是 ap_table (键值在哪里):
下面是预期的表格。
SQL 能够进行这种数据操作,如果有的话我怎么能得到这个。
我已经尝试过左连接、内连接和完全外连接。但是我无法创建一个新列并根据条件填充它。
解决方案
一种方法是多个join
s:
select a.*,
v1.visit_id, v1.user_name,
v2.visit_id, v2.user_name,
v3.visit_id, v3.user_name
from ap_table a left join
visit_table v1
on v1.ap_id = a.ap_id and v1.type = 'first' left join
visit_table v2
on v2.ap_id = a.ap_id and v2.type = 'second' left join
visit_table v3
on v3.ap_id = a.ap_id and v3.type = 'third'
推荐阅读
- redis - 如何计算 Redis 流中未读或已确认的消息?
- node.js - 即使在反应节点应用程序中连接了套接字,Socket.io 也不会发出事件
- google-drive-api - 无法使用 google drive api 导出/下载文档
- javascript - Firefox 中的绘画问题(仅限 OSX),在使用 ReactJS 的覆盖模式中
- r - R 闪亮 | 使用动态 UI 评估用户 textInput
- mongodb - MongoDB Scala 驱动程序。如何仅更新案例类对象中更改的文档字段
- javascript - 我们如何在 vue js 的数据函数中动态声明一个变量?
- javascript - 如何使用 javascript 或 jquery 从 HTML 中的数据列表中删除重复选项?
- c# - 当一些任务可能被取消时等待多个任务
- batch-file - 如何将字符串传递给需要文件参数的 Windows 命令?