Форумы портала PHP.SU » » Работа с СУБД » Сложные и вложенные запросы SQL

Страниц (1): [1]
 

1. vlom - 03 Августа, 2011 - 08:06:16 - перейти к сообщению
есть четыре вот такие таблички
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE `db`.`customers` (
  2. `id` INT NOT NULL AUTO_INCREMENT ,
  3. `name` VARCHAR(45) NULL ,
  4. PRIMARY KEY (`id`) )
  5. ENGINE = MyISAM DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci;
  6.  
  7. CREATE TABLE `db`.`orders` (
  8. `id` INT NOT NULL AUTO_INCREMENT ,
  9. `customer_id` INT NULL ,
  10. PRIMARY KEY (`id`) )
  11. ENGINE = MyISAM DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci;
  12.  
  13. CREATE TABLE `db`.`products` (
  14. `id` INT NOT NULL AUTO_INCREMENT ,
  15. `title` VARCHAR(255) NULL ,
  16. PRIMARY KEY (`id`) )
  17. ENGINE = MyISAM DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci;
  18.  
  19. CREATE TABLE `db`.`order_product_rel` (
  20. `id` INT NOT NULL AUTO_INCREMENT ,
  21. `order_id` INT NULL ,
  22. `amount` INT NULL ,
  23. PRIMARY KEY (`id`) )
  24. ENGINE = MyISAM DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci;


необходимо вывести вот такие запросы
1) Написать SQL запрос для получения списка всех клиентов и количества заказов, сделанных каждым клиентом (у некоторых клиентов может не быть заказов).
2) Написать SQL запрос для получения уникальных наименований товаров, которые ни разу не были заказаны клиентами.
3) Вывести имена клиентов, сделавших более 5-ти заказов.
2. biperch - 03 Августа, 2011 - 10:53:30 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT c.id, c.name FROM consumer с, orders o WHERE count(o.id)>4 AND c.id=o.customer_id
3. vlom - 03 Августа, 2011 - 11:58:26 - перейти к сообщению
biperch Invalid use of group function
(Добавление)
В запросе приведенном biperch как-то можно использовать HAVING, но как разобраться не могу

 

Powered by ExBB FM 1.0 RC1