У нас есть такая БД:
CREATE TABLE `jobs` (
`id` int NOT NULL AUTO_INCREMENT,
`job` varchar(255),
PRIMARY KEY (`id`)
);
INSERT INTO `jobs` VALUES
(1,'a'),
(2,'b'),
(3,'c'),
(4,'d');
CREATE TABLE `payments` (
`job_id` int,
`amount` int
);
INSERT INTO `payments` VALUES
(1,100),
(1,100),
(2,600),
(2,600);
Наша задача:
Получить все задания, где сумма платежей меньше 1000.
* 1007результат мы должны рабочие места «а», «с» и «г».Но наш запрос:
SELECT job
FROM jobs j
JOIN payments p ON j.id=p.job_id
GROUP BY job_id
HAVING sum(amount) < 1000;
исключает вакансии без каких-либо платежей.Таким образом, в результате мы получаем только «a».
Как нам построить запрос, чтобы получить все задания, в которых сумма платежей меньше 1000?