2012-06-20 2 views
1

У меня есть следующий запрос. Если я запустил его, я получу эту ошибку message.Mysql: невозможно получить значение из запроса выбора внутри запроса

query-

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 инструкция использует данные только из столбца, а не из двух.
Смежные вопросы