我有表 x 包含用户完成的类(class),但另一个表 y 包含分配给用户的类(class)。如果用户没有完成类(class),我需要检索所有带有空行的类(class)
[表 M] [表 X] [表 Y]
用户 ID 用户 ID Cid 类(class) ID
1 1 1 1
2
2
我需要
[Table Z]
[用户 ID] [类(class) ID] [F]
1 1 已完成
1 2 未完成
2 2 未完成
2 1 未完成
最佳答案
你可以做这样的事情
SELECT tm.userid,
ty.courseid,
CASE WHEN tx.cid IS NULL THEN 'not done' ELSE 'done' END AS 'F'
FROM tablem tm
JOIN tabley ty ON 1=1
LEFT JOIN tablex tx ON tm.userid = tx.userid AND ty.courseid = tx.cid
ORDER BY tm.USERID
关于mysql - 如何实现基于2列的sql查询进行外连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28284881/