Помогите составить запрос (MySQL)

P
На сайте с 10.03.2008
Offline
168
496

Есть 3 таблицы:

1) Категории (id, name)

2) Производители (id, name, category)

3) Товары (id, name, proizvoditel)

Каждый производитель привязан к категории (в поле category хранится id категории), каждый товар привязан к производителю (в поле proizvoditel хранится id производителя).

Задача - выбрать все категории и количество товаров в них.

Реально ли это сделать в 1 запрос?

[Удален]
#1

реально ----

SG
На сайте с 22.04.2008
Offline
32
SAG
#2

select name,(select count(*) from products where category=categories.id) from categories

Портфолио (http://beastman.me). Верстаю (/ru/forum/228498). Програмлю (/ru/forum/348359). Последние отзывы (/ru/forum/470865). Контакты: ICQ: 31377144пять;E-mail: andrschwartz<собако>gmail.com
[Удален]
#3
SAG:
select name,(select count(*) from products where category=categories.id) from categories

а учебники почитать?

подсказка

count, grop by, inner join

P
На сайте с 10.03.2008
Offline
168
#4

Спасибо, благодаря подсказкам и свежей голове, сделал :)

SELECT categories.id, categories.name, COUNT(products.id) as counter
FROM `categories`
JOIN `proizvoditeli`
ON proizvoditeli.category=categories.id
INNER JOIN `products`
ON products.proizvoditel=proizvoditeli.id
GROUP BY categories.id
[Удален]
#5

pistol, свзь с производитеями лишняя, если целостность базы поддерживается, если не поддерживается, то да, она актуальна

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий