Mysql 如何正确选择子查询生成的表

Mysql 如何正确选择子查询生成的表,mysql,sql,Mysql,Sql,我试图对子查询生成的表执行SELECT*FROM WHERE result.usd_equivalent>10。我是新手,不确定我写的是否正确,但下面的查询给出了一个错误,错误代码为:1060。重复的列名“currency”。我还将子查询的别名设置为result: SELECT * FROM ( SELECT *, t.amount / POWER(10, cd.exponent) * fx.rate AS "usd_equivalent" FROM new_schema

我试图对子查询生成的表执行
SELECT*FROM WHERE result.usd_equivalent>10
。我是新手,不确定我写的是否正确,但下面的查询给出了一个错误,错误代码为:1060。重复的列名“currency”。我还将子查询的别名设置为
result

SELECT * FROM
(
SELECT *, t.amount / POWER(10,  cd.exponent) * fx.rate AS "usd_equivalent" 
FROM new_schema.transactions t
    JOIN new_schema.fx_rates fx
    ON t.currency = fx.ccy
    JOIN new_schema.currency_details cd
    ON t.currency = cd.currency
    WHERE fx.base_ccy = "USD"
) result
WHERE result.usd_equivalent > 10;`

我只想根据我的
WHERE
子句从生成的表中获取行。如何正确执行此操作?

子查询中的
SELECT*
正在从
new\u schema.transactions
new\u schema.currency\u details
中选择名为
currency
的列,从而导致错误

SELECT *, t.amount / POWER(10,  cd.exponent) * fx.rate AS usd_equivalent
FROM new_schema.transactions t
JOIN new_schema.fx_rates fx ON t.currency = fx.ccy
JOIN new_schema.currency_details cd ON t.currency = cd.currency
WHERE fx.base_ccy = "USD"
HAVING usd_equivalent > 10;

您只需从两个表中的一个表中选择
currency
列的一个实例,或将两个列重命名为不同的名称。

忘记
select*
,逐个列出列。谢谢,太棒了