mariadb SQL视图使用视图中的字段计算另一个值

goucqfw6  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(185)

我有这样的看法:

create view resources_view as
select message.id                                                                                                 AS ID,
       message.id                                                                                                 AS SORT_ID,
       'MESSAGE'                                                                                                  AS TYPE,
       message.description                                                                                        AS PREVIEW,
       message.created_at                                                                                         AS CREATED_AT,
       message.modified_at                                                                                        AS MODIFIED_AT,
       user.nickname                                                                                              AS CREATOR,
       message.creator_id                                                                                         AS CREATOR_ID,
       IF(message.deleted = TRUE, 'DELETED', IF(reportNumberCountFunction(message.id, 'message') > 0, 'REPORTED',
                                                IF(message.verified_at IS NOT NULL, 'VERIFIED', 'NOT_VERIFIED'))) AS STATUS,
       userAssignee.nickname                                                                                      AS ASSIGNEE,
       message.assignee_id                                                                                        AS ASSIGNEE_ID,
       reportNumberCountFunction(message.id, 'message')                                           AS REPORT_NUMBERS
from message message
         join user user ON message.creator_id = user.id
         left join user userAssignee ON message.assignee_id = userAssignee.id

正如你所看到的,reportNumberCountFunction在同一个查询中使用了两次。我没有找到任何有用的东西,所以我需要向Maven提出问题。是否有可能使用REPORT_NUMBERS中的这个值,或者以某种方式将这个值存储在某个临时变量中,这样我就不会调用这个函数两次?我使用的是最新的MariaDB

vohkndzv

vohkndzv1#

教科书中使用了十字架,但不要认为这是MariaDB中的一个东西。
下一个最好的方法。使用一次派生表中的函数,然后可以在外部查询中通过别名引用输出。

相关问题