查询是
SELECT
p . * ,
GROUP_CONCAT( a.attempt_id ORDER BY a.date_time DESC ) AS ATT_ID
FROM papers AS p
LEFT JOIN attempts AS a ON p.prod_id = a.paper_id
WHERE (a.user_id =15 OR a.user_id IS NULL)
GROUP BY p.prod_id
查询部分工作,它将显示客户端未尝试的所有文件,但如果客户端未尝试但未尝试其他HAS,则不会显示纸张,因此如果纸张2的尝试具有用户ID 14尝试表和另一个客户有用户ID 15谁没有尝试过纸2然后纸2没有显示在列表中...
提前感谢。
答案 0 :(得分:0)
外部联接在没有记录时仍会为您提供记录。但是,对于纸张2,没有外部连接,因为找到了记录 (对于用户14)。稍后,在WHERE子句中,删除该记录,正如您所说,您只想保留用户15或null。
将条件移至ON子句以使其按预期工作。
SELECT
p . * ,
GROUP_CONCAT( a.attempt_id ORDER BY a.date_time DESC ) AS ATT_ID
FROM papers AS p
LEFT JOIN attempts AS a ON p.prod_id = a.paper_id and a.user_id = 15
GROUP BY p.prod_id