该查询运行良好,并给出如下输出:
[(1, 9), (2, 12), (4, 14), (6, 14)]
query = """
SELECT users.id,
count(tasks.userId)
FROM users
LEFT JOIN tasks ON users.id = tasks.userId
WHERE tasks.completed = FALSE
GROUP BY users.id
"""
但是,当我添加另一个左连接时,它不会给出准确的结果:
query = """
SELECT users.id,
count(tasks.userId), count(songs.userId)
FROM users
LEFT JOIN tasks ON users.id = tasks.userId
LEFT JOIN songs ON users.id = songs.userId
WHERE tasks.completed = FALSE
GROUP BY users.id
"""
结果应该是这样的:
[(1, 9, 10), (2, 12, 10), (4, 14, 10), (6, 14, 10)]
但是,我的结果是这样的:
[(1, 90, 90), (2, 120, 120), (4, 140, 140), (6, 140, 140)]
看起来像是tasks x 10
的值,count(任务)和count(歌曲)
count(tasks.userId)
个用户的 idea 是找到用户ID匹配的任务数.