2013-06-28 3 views
2

Итак, мне нужна помощь в выборе внутри внутри подзапроса, я знаю, что это своего рода основы, но я пока не могу сделать это сам.Подзапрос Mysql выбрать все id

(Reparacao = ремонт и LOJAS = магазины, от португальского на английский)

Я хочу, чтобы получить количество ремонтов, что каждый магазин имеет. Однако я могу делать только одно хранилище за раз, но мне нужен запрос, который выбирает все магазины.

Я использую этот запрос:

SELECT COUNT(DISTINCT id_reparacao) , lojas.nome 
FROM reparacoes 
INNER JOIN lojas ON lojas.id = 1 
WHERE id_loja = lojas.id 

и я хочу что-то вроде:

SELECT COUNT(DISTINCT id_reparacao) , lojas.nome 
FROM reparacoes 
INNER JOIN lojas ON lojas.id = (Select id from lojas) //i want the id of every store 
WHERE id_loja = lojas.id 

ответ

1

Попробуйте это:

Там нет необходимости использовать вспомогательный запрос для извлечения всех ремонтных работ подсчитывать по магазинам. Вы можете легко получить результат с помощью JOIN и GROUP BY.

SELECT COUNT(DISTINCT id_reparacao) repairCnt, lojas.nome 
FROM reparacoes 
INNER JOIN lojas ON lojas.id = id_loja 
GROUP BY lojas.id 
+0

отлично работает. Кажется, это так просто, но мне так сложно делать такие запросы .. – DaftDev

+0

Prática, prática ... – Strawberry

+0

@Strawberry nice portuguese there;) – DaftDev

0

Почему бы вам не попробовать присоединиться ON идентификаторами:

SELECT COUNT(DISTINCT r.id_reparacao) , lojas.nome 
FROM reparacoes r 
INNER JOIN lojas l ON l.id = r.id_loja;