Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
fabio.argenton

MySQL RESOLVIDO Select para contar quantos registros possui tabela relacionada

Recommended Posts

Possuo 2 tabelas, sendo uma tabela principal chamada "mesa" e a tabela relacionada chamada "mesaparada" contendo os detalhes da tabela principal, ou seja, 1 para N.

 

Quero realizar uma consulta SQL que traga todos os registros da tabela "mesa" (Tipo LEFT JOIN) porém com uma coluna adicional trazendo a quantidade de registros da tabela "mesaparada" referente a cada linha da tabela "mesa" abaixo a estrutura das minhas tabelas e um exemplo do que preciso:

-- Tabela Pai
CREATE TABLE `mesa` (
    `cod` INT(11) NOT NULL AUTO_INCREMENT,
    `inicio` VARCHAR(50) NOT NULL,
    `fim` VARCHAR(50) NULL DEFAULT NULL,
    `mesa` VARCHAR(50) NOT NULL,
    `material` VARCHAR(50) NOT NULL,
    `descricao` VARCHAR(50) NULL DEFAULT NULL,
    `qtde` INT(11) NOT NULL,
    `condicao` INT(1) NOT NULL DEFAULT '0',
    PRIMARY KEY (`cod`)
) 

-- Tabela detalhes da tabela Pai
CREATE TABLE `mesaparada` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`codParada` INT(11) NOT NULL,
	`mesaParada` VARCHAR(50) NOT NULL,
	`inicioParada` VARCHAR(50) NOT NULL,
	`motivoParada` VARCHAR(250) NULL DEFAULT NULL,
	`fimParada` VARCHAR(50) NULL DEFAULT NULL,
	PRIMARY KEY (`id`),
	INDEX `FK_Mesa` (`codParada`),
	CONSTRAINT `FK_Mesa` FOREIGN KEY (`codParada`) REFERENCES `mesa` (`cod`)
)

Exemplo:

A ultima coluna é a quantidade de linhas que possuo na tabela relacionada de detalhes para cada registro da tabela principal:

image.png.139818a31626c4b2afa115e06086f708.png

 

 

Editado por DiF
Resolvido

Compartilhar este post


Link para o post
Compartilhar em outros sites
 

Resolvi da seguinte forma:

SELECT con1.cod, con1.inicio, con1.fim, con1.mesa, con1.material, con1.descricao, con1.qtde, con1.condicao, COUNT(con2.codParada) AS Paradas 
FROM (SELECT *FROM mesa) AS con1 
LEFT JOIN (SELECT codParada FROM mesaparada) AS con2 
ON con1.cod = con2.codParada 
GROUP BY con1.cod

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×