加入子查询时使用if条件

登山者

如果Events.Type字段等于 1,我需要在以下查询中使用 XXXXX 的查询部分是这样的:

ON Stages.ID = Abandonments.IDstage

如果它是 2 Events.Type,带有 XXXXX 的查询部分是这样的:

ON Stages.ID > Abandonments.IDstage

询问

SELECT
*,
  Events.Type
FROM Participants
  INNER JOIN Times
    ON Participants.ID = Times.IDparticipant
  INNER JOIN Events
    ON Events.ID = Participants.IDevent
    AND Events.ID = Times.IDevent
  INNER JOIN Stages
    ON Events.ID = Stages.IDevent
    AND Stages.ID = Times.IDstage
  LEFT OUTER JOIN (SELECT
      Retired.ID,
      Retired.IDstage,
      Retired.IDparticipant,
      Retired.IDevent
    FROM Retired) Abandonments
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    AND Participants.ID = Abandonments.IDparticipant
    AND Events.ID = Abandonments.IDevent
WHERE Times.IDevent = 31
AND Times.IDstage = 156
ORDER BY Participants.ID

谢谢

马丁

您的 SQL 查询中有很多内容X,并且没有显示您尝试构建的限定符,因此我不太清楚您在这里尝试达到的意图。

但是,您在问题中描述了解决方案。

因此:

ON ((Stages.ID = Abandonments.IDstage AND Events.Type = 1) OR 
   (Stages.ID > Abandonments.IDstage AND Events.Type = 2))

如果这些定义的参数都不为真(比如说Events.Type = 3),那么你需要添加一个限定符或一个假返回来排除这个整体JOIN

ON ((Stages.ID = Abandonments.IDstage AND Events.Type = 1) OR 
   (Stages.ID > Abandonments.IDstage AND Events.Type = 2)) OR 2=1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用子查询加入

来自分类Dev

无需使用即可加入子查询

来自分类Dev

在 sql 中使用条件检查加入查询

来自分类Dev

Laravel 加入子查询

来自分类Dev

加入子查询

来自分类Dev

子查询加入错误

来自分类Dev

(+) 加入子查询

来自分类Dev

MySQL查询加入条件

来自分类Dev

如何使用子查询在表中加入复杂的 sql 查询

来自分类Dev

加入和分组时避免无用的子查询或聚合

来自分类Dev

使用“不在”运算符转换子查询以加入

来自分类Dev

如何使用Where条件随着加入查询在Laravel

来自分类Dev

mysql 使用 where in 条件选择多个 avg 列并加入查询

来自分类Dev

google bigQuery子查询加入

来自分类Dev

在 peewee 中加入子查询

来自分类Dev

MS Access 加入子查询

来自分类Dev

Oracle SQL - 加入子条件

来自分类Dev

SQL:子查询?拉柱使用条件

来自分类Dev

使用条件子查询的Postgresql WHERE子句

来自分类Dev

使用where条件的SQL子查询

来自分类Dev

在JPA条件API中使用子查询

来自分类Dev

使用if条件基于子查询更新表

来自分类Dev

使用LogParser加入查询

来自分类Dev

加入查询,而不是使用NOT IN

来自分类Dev

Rails 活动记录查询:加入子条件以仅包含匹配的结果

来自分类Dev

如何在Django中使用管理查询集加入groupby子查询

来自分类Dev

mysql - 使用子查询连接子查询,其中条件使用主查询字段

来自分类Dev

在检查条件时,postgresql子查询的列过多

来自分类Dev

在Django ORM中加入子查询