如果该值存在于另一个表中,则从该表返回另一个值

马克西米利安·克劳斯(Maximilian Krause)

我目前有以下SQL查询:

SELECT video_calls.initiated_user_id AS user_id,
       (CASE
            WHEN EXISTS
                   (SELECT *
                    FROM patients
                    WHERE patients.id = video_calls.initiated_user_id)
            THEN 'patient'
            ELSE (CASE
                      WHEN EXISTS
                             (SELECT *
                              FROM backend_users
                              WHERE backend_users.id = video_calls.initiated_user_id)
                      THEN "%%backend%%"
                      ELSE "unknown"
                  END)
        END) AS user_type
FROM video_calls
WHERE id='7f350a98-93d3-4d21-80a8-6cda3e47a4c0'
UNION
SELECT user_id,
       user_type
FROM channel_joins
WHERE channel_id='7f350a98-93d3-4d21-80a8-6cda3e47a4c0'

在当前显示该行的地方,THEN "%%backend%%"我想返回已找到backend_users.backend_type该值的对应行的列video_calls.initiated_user_id我想我需要在这里使用JOIN,但是我目前无法弄清楚确切的位置。

戈登·利诺夫

您已经在使用相关子查询。您可以使用它来获取值:

        ELSE (SELECT COALESCE(MAX(bu.backend_type), 'unknown')
              FROM backend_users bu
              WHERE bu.id = video_calls.initiated_user_id
             )

注意的使用MAX()这样可以确保仅返回一个值。如果没有行匹配,则MAX()返回return NULL,因此'unknown'返回。

这与您的伪代码有一点细微差别。如果匹配的行是NULL,则返回'unknown'而不是NULL如果这是一个问题,可以调整子查询中的逻辑。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果该行存在于另一个Datable中,则从该数据表中删除该行

来自分类Dev

如果一个表不存在于另一个表中,该如何删除

来自分类Dev

如果该数据不存在于另一个表中,该如何选择该数据?

来自分类Dev

列值必须存在于另一个表的非主列中

来自分类Dev

列值必须存在于另一个表的非主列中

来自分类Dev

要求记录存在,如果它们存在于MySQL的另一个表中

来自分类Dev

如果该ID在另一个表中不存在,则从表中删除

来自分类Dev

Python:比较列表中的值(如果存在于另一个列表中)

来自分类Dev

如果另一个数据框中存在一个数据框值,则从该数据框中获取一个值

来自分类Dev

返回存在于一个表中但不在另一个表中的结果

来自分类Dev

SQL 只返回存在于另一个表中的 id

来自分类Dev

如果所有记录都存在于SQL Server的另一个表中,则返回行列表

来自分类Dev

PHP在一个数组中查找作为值存在于另一个数组中的键,然后拉回该值

来自分类Dev

从表中获取数据,如果它存在于另一个表中,则从那里获取数据

来自分类Dev

通过id值从存在于另一个表条件的表中选择值

来自分类Dev

如果值存在于另一个表中,如何将其放置在A列中;否则,将其放置在B列中

来自分类Dev

如果标识符不存在于另一个表中,则删除表中的行

来自分类Dev

如果数据存在于另一个表中,如何从表中获取数据 C# LINQ

来自分类Dev

如果一个数组中的值存在于另一个数组中,则返回数组

来自分类Dev

PostgreSQL-如果另一个表中存在字段值,则返回结果

来自分类Dev

如果找到了记录,则从另一个表中选择值,请在当前表上使用该值

来自分类Dev

如果项目存在于另一个ListBox中,则从ListBox中删除项目

来自分类Dev

Python - 如果存在于另一个 df 列中,则从 df 列中删除元组

来自分类Dev

SQL,如果另一个表中不存在该字段,则选择字段

来自分类Dev

SQL,如果另一个表中不存在该字段,则选择字段

来自分类Dev

如何通过该表中的另一个相关值在表中找到一个值?

来自分类Dev

MySQL查询按存在于另一个表中

来自分类Dev

MySQL 查询不存在于另一个表中

来自分类Dev

FirebaseRecyclerAdapter 检查 Id 是否存在于另一个表中

Related 相关文章

  1. 1

    如果该行存在于另一个Datable中,则从该数据表中删除该行

  2. 2

    如果一个表不存在于另一个表中,该如何删除

  3. 3

    如果该数据不存在于另一个表中,该如何选择该数据?

  4. 4

    列值必须存在于另一个表的非主列中

  5. 5

    列值必须存在于另一个表的非主列中

  6. 6

    要求记录存在,如果它们存在于MySQL的另一个表中

  7. 7

    如果该ID在另一个表中不存在,则从表中删除

  8. 8

    Python:比较列表中的值(如果存在于另一个列表中)

  9. 9

    如果另一个数据框中存在一个数据框值,则从该数据框中获取一个值

  10. 10

    返回存在于一个表中但不在另一个表中的结果

  11. 11

    SQL 只返回存在于另一个表中的 id

  12. 12

    如果所有记录都存在于SQL Server的另一个表中,则返回行列表

  13. 13

    PHP在一个数组中查找作为值存在于另一个数组中的键,然后拉回该值

  14. 14

    从表中获取数据,如果它存在于另一个表中,则从那里获取数据

  15. 15

    通过id值从存在于另一个表条件的表中选择值

  16. 16

    如果值存在于另一个表中,如何将其放置在A列中;否则,将其放置在B列中

  17. 17

    如果标识符不存在于另一个表中,则删除表中的行

  18. 18

    如果数据存在于另一个表中,如何从表中获取数据 C# LINQ

  19. 19

    如果一个数组中的值存在于另一个数组中,则返回数组

  20. 20

    PostgreSQL-如果另一个表中存在字段值,则返回结果

  21. 21

    如果找到了记录,则从另一个表中选择值,请在当前表上使用该值

  22. 22

    如果项目存在于另一个ListBox中,则从ListBox中删除项目

  23. 23

    Python - 如果存在于另一个 df 列中,则从 df 列中删除元组

  24. 24

    SQL,如果另一个表中不存在该字段,则选择字段

  25. 25

    SQL,如果另一个表中不存在该字段,则选择字段

  26. 26

    如何通过该表中的另一个相关值在表中找到一个值?

  27. 27

    MySQL查询按存在于另一个表中

  28. 28

    MySQL 查询不存在于另一个表中

  29. 29

    FirebaseRecyclerAdapter 检查 Id 是否存在于另一个表中

热门标签

归档