繁体   English   中英

如何获取条件为 SQL QUERY 的数据

[英]How to get data with condition SQL QUERY

所以首先,我有 2 张桌子。 第一个是类别

Id     Name     
------------
1   Interior      
2   Eksterior    
3   Display

然后第二个表是历史数据是我完成的任务

Id     category_name    category_id    date (month)     User Id 
---------------------------------------------------------------
001    Interior            1               3             1084
002    Eksterior           2               3             1084
003    Interior            1               4             1089
004    Eksterior           2               4             1085
005    Display             3               4             1085

我想要的是按月获取类别,用户 ID 并知道哪些已经完成,哪些没有从历史记录中完成,就像这样

以用户 ID 为 1084 的 3 月份数据为例:

Id     Name     Status     
---------------------------
1   Interior     done      
2   Eksterior    done      
3   Display    not done    

或像这样:

Id     Name     Status    
--------------------------
1   Interior     1       
2   Eksterior    1       
3   Display      0       

如果历史表中的类别存在,则状态将为 1 表示已完成,0 表示未完成。

这是我之前的查询:

SELECT c.id, c.category, c.id=h.category_id status FROM categories c, history h WHERE MONTH(h.created_at)

我一直在为我的查询检索错误的结果。 请帮我..

看起来像:

SELECT * 
FROM 
  categories c
  LEFT JOIN history h on h.category_id = c.id AND h."date (month)" = 3

..将使您朝着您想要的方向发展:历史表中的行中将有 NULL 用于显示类别; 你可以使用这个“is or is or not null”来创建你的done/not done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM