这是一个(非常)大的查询的一部分。
错误是缺少别名“clienti\u con\u rinnovo”(表“clienti\u con\u rinnovo”不存在)。我不需要重写查询(逻辑是正确的),但可能有助于获得别名。
如果有意思(但你还不知道),顺序是 LEFT JOIN
并遵循 UNION
.
先谢谢你
SELECT * FROM
( SELECT
id,
MAX(dateTransaction) AS last_transaction_renew
FROM transactions
WHERE
renew IS NOT NULL
GROUP BY id ) AS clienti_con_rinnovo
UNION
SELECT * FROM
( SELECT
id,
MAX(dateTransaction) AS last_transaction_renew
FROM transactions
WHERE renew IS NULL
GROUP BY id ) AS clienti_senza_rinnovo
LEFT JOIN clienti_con_rinnovo ON clienti_con_rinnovo.id = clienti_senza_rinnovo.id
WHERE clienti_con_rinnovo.id IS NULL
2条答案
按热度按时间u3r8eeie1#
一种可能的解决方案是创建一个视图,这样每次执行查询时就不需要将大量数据加载到结果中。而且更容易维护,因为您可以在视图中过滤或删除不再需要的列。
例子:
但你的尝试几乎成功了。尝试:
另一张table也是这样:
xzabzqsa2#
我不知道你想做什么,但别名不工作的方式,你试图实现它在这里。试着用这个