您好,我正在建立一个个人网站的问题。该页面是用户的仪表板,其中包含系统上所有类的列表。该表称为“类”,它是“class_reponses”的父表,它是一个表,用于记录用户是否已启动,已完成或未能完成该类。 'class_responses'中包含user_id。我正在尝试构建一个查询,列出所有类行,并且当class_reponses user_id与给定的id不匹配时,只需要有空字段。
SELECT * FROM classes AS Class
LEFT JOIN class_responses AS ClassResponse
ON Class.id = ClassResponse.class_id
WHERE ClassResponse.user_id = 7
此查询与我正在尝试的类似,但如果类没有与user_id匹配的子class_responses,那么类行将不会显示。
答案 0 :(得分:1)
将条件放在ON子句中的左连接表上。
SELECT * FROM classes AS c
LEFT JOIN class_responses AS cr
ON c.id = cr.class_id and cr.user_id = 7