mysql查询select生成数组的位置

时间:2013-09-14 19:57:32

标签: mysql

以下查询失败,因为where条件中的s​​elect语句生成了一个id数组。 我对使用sql相对较新,所以任何有关如何纠正的帮助都会受到赞赏。

    SELECT sum(txnpnl) FROM tdmarketprob.pnl_transactions
    WHERE instrumentid = (SELECT instrumentid
    FROM tdmarketprob.pnl_instruments
    WHERE symbol="ES") and txnpnl <>0;

2 个答案:

答案 0 :(得分:0)

尝试:SELECT sum(txnpnl) FROM tdmarketprob.pnl_transactions WHERE instrumentid IN (SELECT instrumentid FROM tdmarketprob.pnl_instruments WHERE symbol="ES") and txnpnl <>0;

答案 1 :(得分:0)

您最好使用连接而不是嵌套查询。像这样:

SELECT sum(t.txnpnl) FROM tdmarketprob.pnl_transactions t
inner join tdmarketprob.pnl_instruments i
on t. instrumentid = t. instrumentid
WHERE i.symbol="ES" and t.txnpnl <>0;

你对你想得到什么结果不够具体,所以我不确定这个答案是否足够。