Ir ao conteúdo
  • Cadastre-se

MySQL Select para contar quantos registros possui tabela relacionada


Ir à solução Resolvido por fabio.argenton,

Posts recomendados

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

 

 

Link para o comentário
Compartilhar em outros sites

  • Solução

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

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...