簡體   English   中英

如何在考慮另一表的值的情況下計算一列的值

[英]How to calculate the values of one column taking into account the values from another table

我需要一個查詢,允許我計算列的值,同時考慮另一個表中的值,更准確地說,我需要計算用戶是否仍然處於活動狀態(如果用戶具有所有過期角色,則他處於非活動狀態) ,考慮到第二張表的department_date

用戶角色

id_user id_role 出發日期
1 1 2022-05-05
1 2 2022-06-18
2 1 2022-04-12

用戶

id_user 姓名
1 喬治
2 約翰
3 亞歷克斯

我想返回這個表,其中 1 處於活動狀態,0 處於非活動狀態:

用戶

id_user 姓名 地位
1 喬治 1
2 約翰 0
3 亞歷克斯 0

此時,我進行了一個查詢,該查詢返回我所有的非活動用戶和具有一個或多個分配角色的活動用戶。 我想獲取所有用戶,包括那些沒有分配角色的用戶(例如 Alex,在我的示例中)

SELECT user_management.user.*,
       if(count(CASE when current_date() > departure_date_organization 
                     then 1 END) = count(*),0,1) as status
FROM user_management.user, 
     user_organization_role 
WHERE user.id_user = user_management.user_organization_role.id_user 
GROUP BY user.id_user;

使用我的查詢,我得到了不包含Alex的結果:

id_user 姓名 地位
1 喬治 1
2 約翰 0

先感謝您

您不需要連接和聚合。
使用EXISTS

SELECT u.*,
       EXISTS (
         SELECT 1 
         FROM user_management.user_organization_role r 
         WHERE r.id_user = u.id_user AND r.departure_date_organization > CURRENT_DATE
       ) status
FROM user_management.user u;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM