[英]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.