0
我有我使用PostgreSQL的CTE(公共表表达式)功能的查询:如何与一个PostgreSQL CTE查询返回查询生成器
WITH tmp_users AS (
SELECT users.id, users.name, users.email, users.created_at,sum(transactions.amount) as credit
FROM users INNER JOIN transactions
ON users.id = transactions.user_id
GROUP BY users.id,users.name,users.email, users.created_at, transactions.user_id
)
SELECT * FROM tmp_users WHERE credit > 100;
我能实现这个结果:
$result = DB::select("WITH tmp_users AS (
SELECT users.id, users.name, users.email, users.created_at,sum(transactions.amount) as credit
FROM users INNER JOIN transactions
ON users.id = transactions.user_id
GROUP BY users.id,users.name,users.email, users.created_at, transactions.user_id
) SELECT * FROM tmp_users WHERE credit > 100");
但我需要查询生成器不仅结果。
任何帮助将不胜感激。
P.S:
为什么我使用Postgres的CTE功能?
因为在PostgreSQL中,如果我想在别名字段上做任何语句,我需要使用CTE功能(Read more)。
您可以使用子查询得到同样的结果(具有更好的性能)和'然后从*'。 – wildplasser
我在上面的查询中添加了一个地方。现在,我可以通过使用子查询来获得相同的结果吗? –
是的,当然。 – wildplasser