Работа с join - MySQL (219607)

Формулировка задачи:

Здравствуйте! Не могу понять как правильно создать несколько запросов к базе. Вот структура базы:
CREATE TABLE `tickets` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(255) NOT NULL,
  `country` VARCHAR(50) NOT NULL,
  `price` DOUBLE NOT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;
CREATE TABLE `users` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `first_name` VARCHAR(255) NOT NULL,
  `last_name` VARCHAR(255) NOT NULL,
  `age` INT(3) NOT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;
CREATE TABLE `bookings` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `user_id` INT(11) NOT NULL,
  `ticket_id` INT(11) NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `bookings_user_idx` (`user_id` ASC) ,
  CONSTRAINT `bookings_user_idx`
    FOREIGN KEY (`user_id` )
    REFERENCES `users` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  INDEX `bookings_ticket_idx` (`ticket_id` ASC) ,
  CONSTRAINT `bookings_ticket_idx`
    FOREIGN KEY (`ticket_id` )
    REFERENCES `tickets` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
Вот какие запросы нужно сделать: 1) Выбрать всех пользователей старше 40 лет, которые купили билетов на сумму больше чем 600 долларов 2) Выбрать всех пользователей, которые ни разу не покупали билет в страну "Aruba"

Код к задаче: «Работа с join - MySQL (219607)»

textual
SELECT * FROM users
WHERE
  age > 40 and
  id IN (
    select bookings.user_id
    from
      bookings 
      JOIN tickets ON  bookings.ticket_id = tickets.id     
    GROUP BY bookings.user_id
    HAVING  SUM(tickets.price) > 600
  )

5   голосов, оценка 4.600 из 5


СОХРАНИТЬ ССЫЛКУ