Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
tenho as seguitnes tabelas mysql:
PRODUTO (id_pro, nome,valor, grade)
estoque (id_pro,id_est,valor,qtd_est)
grade(id_pro, id_grade, cor, tam, valor, qtd_est)
a tabela estoque quarda informações de estoque para produtos que não utilizam estoque em grade
a tabela estoque quarda informações de estoque para produtos que utilizam estoque em grade
atravez de um campo GRADE na tabela PRODUTO que resege S para estoque com grade e N para estoque sem grade
eu quero criar uma view que una as 3 tabelas. é possivel?
Eu uso o método da tentativa & erro.
Ao invés de trabalhar com três tabelas, eu iria trabalhar com apenas um, assim
CREATE TABLE `produtos` (
`id` int NOT NULL AUTO_INCREMENT,
`nome` varchar(45) COLLATE utf8mb4_general_ci NOT NULL,
`custo_unitario` float NOT NULL,
`unidade` varchar(2) COLLATE utf8mb4_general_ci DEFAULT NULL,
`qt_grade` float DEFAULT NULL,
`tamanho_grade` float DEFAULT NULL,
`cor_grade` float DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
Vamos começar com o repolho que vai ficar na prateleira:
id=1, nome=repolho, custo_unitário=3.49, unidade=un
Agora vamos colocar o mesmo repolho que vai ficar na grade
id=2, nome=repolho, custo_unitário=3.49,unidade=gd,qt_grade=10,tamanho_grade=0,3cm3,cor_grade=varios
Ao invés de termos duas tabelas descrevendo produtos iguais, nos temos uma única tabela que descreve o produto duas vezes, só que um vai no mostruário e o outro para a grade.
Pensando bem, é uma péssima ideia ter dois códigos para o mesmo produto, é tão ruim quanto ter duas tabelas que descrevem o mesmo produto. O melhor é fazer um código para cada produto e colocar a grade em todos os produtos, se possível.
Na hora de fazer o inventário, eu usaria duas colunas, uma para contar as unidades no mostruário, e outra a quantidade de grade no estoque.
Se entendi o problema
Um
Select com join produto,estoque para sem grade
Union
Select com join produto,grade para com grade
Select com join produto,estoque para sem grade
Union
Select com join produto,grade para com grade
Mas faltam detalhes para *unir* ou *juntar* as informações.
é