mysql - 如何使用 case when 语句获得正确的输出?

标签 mysql sql

我想输出一个包含以下列的表格:

ID|Start_date|Success|Fail
1|01-01-2010|Yes|No
2|02-01-2010|No|Yes

My table structure is the following:

Table 1: Start
ID|Start_date

Table 2: Success
ID|Success_date 

Table 3: Fail
ID|Fail_date

请注意,当存在 Start_id 时,它可能会导致成功或失败,但不能同时导致两者。每个表中的 ID 都是唯一的。

我想知道我们如何使用表 1 和表 2 创建输出格式,然后为 Failure 列编写一个依赖于 Success 的 case 语句(类似于 if Success=True,则 Failure=No)。

我怎样才能实现这个目标?

最佳答案

我认为你应该考虑这两个表。某些 id 可能不在这两个表中:

select s.ID, s.start_date, 
       (case when su.id is not null then 'Yes' else 'No' end) as Success,
       (case when f.id is not null then 'Yes' else 'No' end) as fail
from start s left join
     success su
     on su.ID = s.ID left join
     failures f
     on f.ID = s.ID;

关于mysql - 如何使用 case when 语句获得正确的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57244288/

相关文章:

mysql - MySQL 按查询转置组是否可优化?

mysql - 从 3 个表中总结并分组?

mysql - 从Sql中获取对比数据

sql - 如何在 SQL Server 中使用随机聚合函数进行分组?

MySQL:在任何子查询中

java - 线程 "main"中的异常 org.hibernate.MappingException : Unknown entity

mysql - 'LIKE ('%this%' OR '%that%' ) 和 something=else' 不起作用

mysql - MySQL 生成列的问题

php - PHP 4 中的新 DOMDocument()

sql - 在 Sql Server 中将列中的逗号分隔值拆分为多行