2013-06-28 59 views
2

所以,我需要帮助做一个子查询内选择,我知道这是有点基础,但我不能自己做到这一点。Mysql subquery select all 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

试试这个:

没有必要使用子查询来获取所有维修按商店计算。 您可以使用JOINGROUP BY轻松获得结果。

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

完美的作品。这似乎很容易,但我觉得很难做这个querys .. – DaftDev

+0

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

+0

@Strawberry不错的葡萄牙那里;) – DaftDev

0

你为什么不尝试加入ON IDS:

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