我有两个表:一个包含清单上的项目(checklist_id,内容),另一个包含用户和清单项目编号之间的关系(checklist_fk,user_fk)。每次用户勾选项目时,都会插入一行,指示用户 15 完成了项目 3。
当我查询这个时,我正在使用
SELECT content, user_fk, checklist_id, checklist_fk
if (checklist_fk is null, false, true) completed
FROM checklist
LEFT JOIN checklist_completion ON checklist_id = checklist_fk;
但是,如果任何用户已完成给定的清单项,则已完成返回 true。我需要在加入之前过滤第二个表 WHERE user_fk = XX ,但是我该怎么做呢?我相信您应该使用 HAVING user_fk = XX 但这会引发语法错误。