是否可以使用MySQL在子查询中引用外部查询?我知道有some个 case 可以做到这一点:
SELECT *
FROM table t1
WHERE t1.date = (
SELECT MAX(date)
FROM table t2
WHERE t2.id = t1.id
);
但我想知道这样的方法是否可行:
SELECT u.username, c._postCount
FROM User u
INNER JOIN (
SELECT p.user, COUNT(*) AS _postCount
FROM Posting p
--# This is the reference I would need:
WHERE p.user = u.id
GROUP BY p.user
) c ON c.user = u.id
WHERE u.joinDate < '2009-10-10';
我知道我可以使用GROUP BY
或通过将外部WHERE
子句拉入子查询来实现同样的效果,但我需要自动生成SQL,并且由于各种其他原因,无法使用这两种方法.
UPDATE:抱歉,这个问题导致了一些混乱:第一个查询只是一个工作示例,用于演示我需要什么.
UPDATE 2:我需要两个u.id=p.用户比较:第一个统计"2009-10-10"之前加入的用户,而另一个是正确关联表行的加入条件.