Preciso de ajuda para fazer o relacionamento de 3 tabelas
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 !!
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
Curtidas 0
Respostas
Emerson Nascimento
13/10/2020
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;
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;
GOSTEI 0