Как использовать Наличие без выбора поля в MySQL - PullRequest
2 голосов
/ 08 ноября 2011

Я использую этот запрос:

    SELECT  `projects`.*, 
            (SELECT SUM(`amount`) 
            FROM `accountprojectspayment` 
            WHERE `projects_id` = `projects`.`id`) AS `payed`
    FROM `projects`
    INNER JOIN `bids` ON `bids`.`id` = `projects`.`bids_id`
    HAVING `bids`.`amount` >= `payed`

я получаю эту ошибку: Неизвестный столбец 'bids.amount' в 'с предложением

Но если я изменю код на это:

    SELECT  `projects`.*, `bids`.`amount`,
            (SELECT SUM(`amount`) 
            FROM `accountprojectspayment` 
            WHERE `projects_id` = `projects`.`id`) AS `payed`
    FROM `projects`
    INNER JOIN `bids` ON `bids`.`id` = `projects`.`bids_id`
    HAVING `bids`.`amount` >= `payed`

проблема решена, но я не хочу использовать Select bids. amount

1 Ответ

4 голосов
/ 08 ноября 2011

Используйте производную таблицу, например, что-то вроде этого:

SELECT `DT1`.* 
FROM   (SELECT  `projects`.*, 
                (SELECT SUM(`amount`) 
                FROM `accountprojectspayment` 
                WHERE `projects_id` = `projects`.`id`) AS `payed`                   
        FROM `projects`) AS `DT1`            
INNER JOIN `bids` ON `bids`.`id` = `DT1`.`bids_id`
WHERE `bids`.`amount` >= `DT1`.`payed`;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...