Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maiko Rodrigo Britzke

sql 5 tabelas

Recommended Posts

Boa noite Galera, depois de muito tentar fazer esse sql com 5 tabelas e sem sucesso, venho aos colegas solicitar ajuda, segue abaixo um dump das tabelas..se alguem puder me dar um help (ou até um exemplo com outras tabelas onde poderia me basear, estou perdido mesmo), agradeçeria demais, abraços.

 

Presciso fazer a listagem do conteudo da tabela "nota" com:

-> Nome do Aluno, Nome da Turma, Bimestre, Disciplina, Nota, Faltas ordenadando por disciplina

 

--
-- Estrutura da tabela `alunoturma`
--

CREATE TABLE IF NOT EXISTS `alunoturma` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `idUsuario` int(11) NOT NULL,
  `idTurma` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `idUsuario` (`idUsuario`),
  KEY `idTurma` (`idTurma`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

-- --------------------------------------------------------

--
-- Estrutura da tabela `disciplina`
--

CREATE TABLE IF NOT EXISTS `disciplina` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(45) NOT NULL,
  `ativo` int(1) NOT NULL,
  `dataCadastro` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

-- --------------------------------------------------------

--
-- Estrutura da tabela `nota`
--

CREATE TABLE IF NOT EXISTS `nota` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `idAlunoTurma` int(11) NOT NULL,
  `idDisciplina` int(11) NOT NULL,
  `bimestre` int(11) NOT NULL,
  `nota` int(11) NOT NULL,
  `faltas` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `idAlunoTurma` (`idAlunoTurma`),
  KEY `idDisciplina` (`idDisciplina`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

-- --------------------------------------------------------

--
-- Estrutura da tabela `turma`
--

CREATE TABLE IF NOT EXISTS `turma` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(45) NOT NULL,
  `turno` varchar(45) NOT NULL,
  `ano` int(11) NOT NULL,
  `ativo` int(1) NOT NULL,
  `dataCadastro` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;

-- --------------------------------------------------------

--
-- Estrutura da tabela `usuarios`
--

CREATE TABLE IF NOT EXISTS `usuarios` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `idTipoUsuario` int(11) DEFAULT NULL,
  `nome` varchar(100) DEFAULT NULL,
  `dataNasc` varchar(45) DEFAULT NULL,
  `foto` varchar(50) NOT NULL,
  `endereco` varchar(45) DEFAULT NULL,
  `bairro` varchar(45) DEFAULT NULL,
  `cidade` varchar(45) DEFAULT NULL,
  `estado` varchar(45) DEFAULT NULL,
  `email` varchar(45) DEFAULT NULL COMMENT '			',
  `telefone` varchar(45) DEFAULT NULL,
  `celular` varchar(45) DEFAULT NULL,
  `login` varchar(45) DEFAULT NULL,
  `senha` varchar(45) DEFAULT NULL,
  `dataCadastro` datetime DEFAULT NULL,
  `ultimoAcesso` datetime DEFAULT NULL,
  `ativo` int(1) DEFAULT '1',
  `cpf` varchar(45) DEFAULT NULL,
  `rg` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idTipoUsuario` (`idTipoUsuario`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=52 ;

--
-- Restrições para as tabelas dumpadas
--

--
-- Restrições para a tabela `alunoturma`
--
ALTER TABLE `alunoturma`
  ADD CONSTRAINT `alunoturma_ibfk_10` FOREIGN KEY (`idUsuario`) REFERENCES `usuarios` (`id`),
  ADD CONSTRAINT `alunoturma_ibfk_11` FOREIGN KEY (`idTurma`) REFERENCES `turma` (`id`);

--
-- Restrições para a tabela `nota`
--
ALTER TABLE `nota`
  ADD CONSTRAINT `nota_ibfk_1` FOREIGN KEY (`idAlunoTurma`) REFERENCES `alunoturma` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `nota_ibfk_2` FOREIGN KEY (`idDisciplina`) REFERENCES `disciplina` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;

--
-- Restrições para a tabela `usuarios`
--
ALTER TABLE `usuarios`
  ADD CONSTRAINT `usuarios_ibfk_1` FOREIGN KEY (`idTipoUsuario`) REFERENCES `tipousuarios` (`id`);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia pessoal, nda como um domingo com o kra descançado e com a mente aberta...com mais um pouco de pesquisas, segue abaixo a resposta da minha propria pergunta, e servir de ajuda pra quem prescisar:

 

select nota.id as idNota,nota.faltas as faltas,nota.nota as nota,nota.bimestre as bimestre,alunoturma.id 
as idAlunoTurma,alunoturma.idTurma as idTurma,turma.nome as nomeTurma,disciplina.nome as 
nomeDisciplina,usuarios.nome as nomeAluno from (((nota inner join alunoturma on alunoturma.id =
 nota.idAlunoTurma) inner join disciplina on nota.idDisciplina = disciplina.id) inner join usuarios 
on alunoturma.idUsuario = usuarios.id) inner join turma on alunoturma.idTurma = turma.id

 

a saída vai ser algo como:

 

idNota 	faltas 	nota 	bimestre 	idAlunoTurma 	idTurma 	nomeTurma 	nomeDisciplina 	nomeAluno
1 	5 	67 	2 	        4 	        3 	        8º Série B 	Ciências 	Aluno Teste

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia pessoal, nda como um domingo com o kra descançado e com a mente aberta...com mais um pouco de pesquisas, segue abaixo a resposta da minha propria pergunta, e servir de ajuda pra quem prescisar:

 

select nota.id as idNota,nota.faltas as faltas,nota.nota as nota,nota.bimestre as bimestre,alunoturma.id 
as idAlunoTurma,alunoturma.idTurma as idTurma,turma.nome as nomeTurma,disciplina.nome as 
nomeDisciplina,usuarios.nome as nomeAluno from (((nota inner join alunoturma on alunoturma.id =
 nota.idAlunoTurma) inner join disciplina on nota.idDisciplina = disciplina.id) inner join usuarios 
on alunoturma.idUsuario = usuarios.id) inner join turma on alunoturma.idTurma = turma.id

 

a saída vai ser algo como:

 

idNota 	faltas 	nota 	bimestre 	idAlunoTurma 	idTurma 	nomeTurma 	nomeDisciplina 	nomeAluno
1 	5 	67 	2 	        4 	        3 	        8º Série B 	Ciências 	Aluno Teste

Moderador, por favor retire o "Resolvido" do título do POST

 

aproveitando meu próprio tópico, estou a alguns dias tentando concatenar as faltas e notas usando o group_concat do mysql...algem poderia me dar um dica ou ajuda de como fazer isso usando o sql abaixo:

 

SELECT disciplina.nome AS nomeDisciplina, 
nota.faltas as faltas, 
nota.nota as nota,
nota.bimestre as bimestre
FROM nota
INNER JOIN alunoturma ON alunoturma.id = nota.idAlunoTurma
INNER JOIN disciplina ON nota.idDisciplina = disciplina.id
INNER JOIN usuarios ON alunoturma.idUsuario = usuarios.id
INNER JOIN turma ON alunoturma.idTurma = turma.id
WHERE usuarios.id = '58'

gostaria que a saída fosse algo pareçido com isso:

 

'Matematica', 'nota1ºbim,nota2ºbim,nota3ºbim,nota4ºbim', 'faltas1ºbim,faltas2ºbim,faltas3ºbim,faltas4ºbim'
'Artes', 'nota1ºbim,nota2ºbim,nota3ºbim,nota4ºbim', 'faltas1ºbim,faltas2ºbim,faltas3ºbim,faltas4ºbim'

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.