【发布时间】:2021-03-02 12:09:16
【问题描述】:
我正在尝试合并 mariadb 中的数据。 我只想获取结果不佳的数据
首先你应该看看我建立的查询
如果变成好的数据,有3个查询用于比较
当回合为1并且结果为好时,下回合不可能变成坏的。 这种情况下一轮的结果总是好或为空
和
当轮数为1且结果为坏时,下一轮可以变成好坏和NULL
和
下一轮,如果结果为null,仍然是不好的结果。
SELECT name,result,round FROM my_table WHERE round = 1
╔══════╦════════╦═══════╗
║ name ║ result ║ round ║
╠══════╬════════╬═══════╣
║ A ║ bad ║ 1 ║
║ B ║ bad ║ 1 ║
║ C ║ bad ║ 1 ║
║ D ║ good ║ 1 ║
╚══════╩════════╩═══════╝
SELECT name,result,round FROM my_table WHERE round = 2
╔══════╦════════╦═══════╗
║ name ║ result ║ round ║
╠══════╬════════╬═══════╣
║ A ║ NULL ║ 2 ║
║ B ║ NULL ║ 2 ║
║ C ║ good ║ 2 ║
║ D ║ NULL ║ 2 ║
╚══════╩════════╩═══════╝
SELECT name,result,round FROM my_table WHERE round = 3
╔══════╦════════╦═══════╗
║ name ║ result ║ round ║
╠══════╬════════╬═══════╣
║ A ║ NULL ║ 3 ║
║ B ║ good ║ 3 ║
║ C ║ good ║ 3 ║
║ D ║ NULL ║ 3 ║
╚══════╩════════╩═══════╝
我想得到这样的结果:
╔══════╦════════╦═══════╗
║ name ║ result ║ round ║
╠══════╬════════╬═══════╣
║ A ║ bad ║ 3 ║
╚══════╩════════╩═══════╝
我的意思是我可以这样搜索
SELECT name,result,round FROM my_table WHERE type = 3(last round) and result = 'bad'
但你知道它是否为null,我必须找到它的上一轮结果。
然后我要再次请求查询,如果它再次有NULL作为结果,我必须请求上一轮的查询。它会重复。我认为这不是一个好主意。
如果你能理解我需要什么以及我应该怎么做,请告诉我更好的想法或解决方案
【问题讨论】:
-
为您的表提供 CREATE TABLE 和 INSERT INTO 数据匹配显示的输出。 PS。输出 2 和 3 与查询不匹配(输出列表中的
type但输出表中的round)。 -
@Akina 哦对不起我编辑了它
标签: mysql sql mariadb mariasql