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*
,逐个列出列。谢谢,太棒了