1

次のクエリがあります。実行すると、このエラーメッセージが表示されます。

クエリ-

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。2 番目のクエリから値を取得できません。

このクエリを修正する方法を教えてください。

前もって感謝します :)

4

1 に答える 1

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ステートメントは、2 つではなく、列のみからのデータを使用します。
于 2012-06-20T23:55:26.257 に答える