Duplicando dados no Insert

3 respostas Resolvido
mysql
M

Galera , sou iniciante no mundo do banco de dados mais especificadamente no MySql.
A minha dúvida é, eu faço vários inserts com valores diferentes, porem na hora de dar o Select nas tabelas que eu inseri valores, ele insere varias vezes a mesma coisa ! Mesmo se eu executar 1 bloco de código por vez…

INSERT INTO MAQUINA (COD_MAQ, NOME_MAQ, MARCA) VALUES ("002", "TESTE2", "ITEST2");
INSERT INTO MONITOR (COD_MON, MARCA, COD_FABM) VALUES ("002", "LG", "TEST12542");
INSERT INTO MOUSE (COD_MOU,MARCA,COD_FABO,TIPO) VALUES ("002","TEST","002135465TES2","USB");
INSERT INTO SETOR (COD_SET,NOME_SET) VALUES ("01","INFORMATICA");
INSERT INTO TECLADO (COD_TEC,MARCA,COD_FABT,TIPO) VALUES ("002","TESTO2"," ","USB");
INSERT INTO USUARIO (NOME_USER,COD_USER) VALUES ("2TEST.TEST","002");

INSERT INTO MAQUINA (COD_MAQ, NOME_MAQ, MARCA) VALUES ("001", "TESTE", "ITEST");
INSERT INTO MONITOR (COD_MON, MARCA, COD_FABM) VALUES ("001", "LG", "TEST124");
INSERT INTO MOUSE (COD_MOU,MARCA,COD_FABO,TIPO) VALUES ("001","TEST","002135465TE","USB");
INSERT INTO SETOR (COD_SET,NOME_SET) VALUES ("01","INFORMATICA");
INSERT INTO TECLADO (COD_TEC,MARCA,COD_FABT,TIPO) VALUES ("001","TESTO2"," ","USB");
INSERT INTO USUARIO (NOME_USER,COD_USER) VALUES ("TEST.TEST","001");


SELECT * FROM USUARIO,SETOR,MAQUINA,MOUSE,TECLADO,MONITOR;

3 Respostas

L
Solucao aceita

Esse select está errado. Desse jeito, ele vai retornar dados repetidos mesmo, pois não foram feitos os devidos JOINS (se bem que pelo INSERTS, não há relacionamento entre as tabelas).

O certo é executar o select para cada tabela separadamente.

M

Entendi obrigado. Me tira outra dúvida, mesmo dando select separadamente assim por exemplo

SELECT NOME_USER FROM USUARIO;
SELECT NOME_SET FROM SETOR;
SELECT NOME_MAQ FROM MAQUINA;

existe alguma forma de juntar tudo isso no console só ? Porque ele abre 3 abas com 1 select cada…

L

Você consegue utilizando UNION

(SELECT NOME_USER FROM USUARIO)
UNION
(SELECT NOME_SET FROM SETOR)
UNION
(SELECT NOME_MAQ FROM MAQUINA);

A questão do UNION é que a quantidade de colunas retornadas por cada select deve ser igual, e (se não me engano) os tipos de dado de cada coluna devem ser correspondentes para cada select.

Criado 29 de junho de 2017
Ultima resposta 29 de jun. de 2017
Respostas 3
Participantes 2