JOIN
SELECT *
FROM a
INNER JOIN (
SELECT b.id, Count(*) AS Count
FROM b
GROUP BY b.id ) AS b ON b.id = a.id;
LATERAL
SELECT *
FROM a,
LATERAL (
SELECT Count(*) AS Count
FROM b
WHERE a.id = b.id ) AS b;
我了解这里的join将被计算一次,然后与主请求合并,而不是针对每个FROM的请求。
我认为,如果join将几行旋转到一个框架中,那么它将更有效率,但如果是1对1,则应该使用LATERAL - 我认为是这样的?