查询我真的需要执行是引用外部表值如下:MySQL的 - 从双重嵌套子查询
SELECT u.points
(SELECT COUNT(1) FROM (SELECT 1 FROM checkin c INNER JOIN wineries w ON w.id = c.winery_id WHERE c.user_id = u.id GROUP BY region_id) b) as states_visited
FROM users u
GROUP BY u.id
ORDER BY points DESC
然而,这将导致以下错误:
未知列在“u.id” “where子句”
我试着与用户定义的变量,没有错误,但它实际上没有引用用户定义的变量值因为某些原因:
SELECT @uid := u.id, u.points
(SELECT COUNT(1) FROM (SELECT 1 FROM checkin c INNER JOIN wineries w ON w.id = c.winery_id WHERE c.user_id = @uid GROUP BY region_id) b) as states_visited
FROM users u
GROUP BY u.id
ORDER BY points DESC
任何想法如何让这项工作?没有明显的诉诸两个单独的查询?
你能否简单解释一下正在使用的表格,它们的模式以及您实际试图在查询结果中获得的内容? –
你可以在sqlFiddle.com上设置一些测试数据,并解释你期望的结果 –