У нас есть БД, как это:MySQL вопрос выберите запрос
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.
В результате мы если рабочие места «a», «c» и «d». Но наш запрос:
SELECT job
FROM jobs j
JOIN payments p ON j.id=p.job_id
GROUP BY job_id
HAVING sum(amount) < 1000;
не включает рабочие места без каких-либо платежей. Таким образом, мы получаем только «а».
Как мы должны построить запрос для получения всех заданий, где сумма платежей меньше 1000?
Протестировано и работает. Спасибо. –