Preciso de ajuda para fazer o relacionamento de 3 tabelas

13/10/2020

0

segui abaixo as tres tabelas que preciso relacionar :

CREATE TABLE `tarefas` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(100) NOT NULL,
`data_vencimento` date NOT NULL,
`categoria` varchar(5) NOT NULL,
`projeto` varchar(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;


CREATE TABLE `projeto` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(100) NOT NULL,
`duracao` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;


CREATE TABLE `categoria` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`descricao` varchar(60) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;


Fiz a seguinte query :

SELECT *FROM tarefas
inner join projeto on projeto.id = tarefas.id inner join categoria on categoria.id = tarefas.id

resultado que esta sendo imprido pelo <?php echo ela nao esta aparecendo o nome tarefa e nem o id da tarefa

2 - Nome: Projeto Site -Data Vencimento :2020-03-20 Categoria : 1 Projeto Projeto Site

se alguem poder me ajudar agradeço !!
Matheus Lima

Matheus Lima

Responder

Posts

13/10/2020

Emerson Nascimento

acredito que estejam faltando tabelas nessa modelagem.

porque cada uma das tabelas que você relacionou têm seu próprio ID, mas nenhuma faz o relacionamento entre elas.
por exemplo:
CREATE TABLE `projeto` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(100) NOT NULL,
`duracao` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

CREATE TABLE `tarefas` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(100) NOT NULL,
`data_vencimento` date NOT NULL,
`categoria` varchar(5) NOT NULL,
`projeto` varchar(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

aparenta faltar uma tabela para relacionamento entre elas:

CREATE TABLE `projeto_tarefas` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_projeto` int(11) NOT NULL,
`id_tarefa` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar