2012-06-20 92 views
1

我有以下查詢。如果我運行它,我得到這個錯誤messageMysql:無法從查詢中的選擇查詢中提取值

查詢 -

SELECT account_name,ABC,date FROM entries 
    LEFT JOIN accounts ON accounts.id = entries.accounts_id 
    LEFT JOIN voucher ON voucher.id = entries.trans_id 
    WHERE trans_id IN (SELECT trans_id, amount AS ABC FROM entries 
         WHERE accounts_id='$accounts_id' AND side='C') 
    AND accounts_id!='$accounts_id' AND side='D' 
    AND voucher.date between '$dateragne1' AND '$dateragne2' 

我認爲這個問題是與價值ABC。它無法從第二個查詢中獲取值。

你能告訴我如何解決這個問題嗎?

感謝提前:)

回答

1

試試這個:

SELECT account_name, _inner.ABC, date 
    FROM 
    (
    SELECT amount AS ABC FROM entries 
     WHERE accounts_id='$accounts_id' AND side='C' 
) AS _inner, entries 
    LEFT JOIN accounts ON accounts.id = entries.accounts_id 
    LEFT JOIN voucher ON voucher.id = entries.trans_id 
    WHERE trans_id IN 
    ( 
     SELECT trans_id FROM entries WHERE accounts_id='$accounts_id' AND side='C' 
    ) 
AND accounts_id!='$accounts_id' AND side='D' 
AND voucher.date between '$dateragne1' AND '$dateragne2'` 

注:

  • 使用子查詢這樣不允許你從它要求的字段。
  • 另外,IN語句僅使用來自唯一列的數據,而不是兩個。