Rinaldo Postado Setembro 5, 2005 Denunciar Share Postado Setembro 5, 2005 Por favor.alguém poderia me ajudar nesta questão?tenho 2 tabelastabela 1 com os dados ABCDEtabela2 com os dados CDEDEDECDCnecessito listar todos os dados da tabela 1 que não estejam na tabela 2.No caso, A e BComo proceder???Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fercosmig Postado Setembro 5, 2005 Denunciar Share Postado Setembro 5, 2005 cara, dei uma pesquisada ae e encontrei isto aeA condicional ON é qualquer condição da forma que pode ser usada em uma cláusula WHERE. Se não houver registros coincidentes para a tabela a direita da parte ON ou USING em um LEFT JOIN, uma linha com NULL atribuído a todas as colunas é usada para a tabela a direita. Você pode usar este fato para encontrar registro em uma tabela que não houver contrapartes em outra tabela mysql> SELECT tabela1.* FROM tabela1 -> LEFT JOIN tabela2 ON tabela1.id=tabela2.id -> WHERE tabela2.id IS NULL;Este exemplo encontra todas as linhas em tabela1 com um valor id que não está presente em tabela2 (isto é, toda as linhas em tabela1 sem linha correspondente em tabela2). Assume-se que tabela2.id é declarada NOT NULL. See Secção 5.2.7, “Como o MySQL Otimiza LEFT JOIN e RIGHT JOIN”. fonte: http://dev.mysql.com/doc/mysql/pt/join.htmlqualquer coisa posta ae!abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rinaldo Postado Setembro 5, 2005 Autor Denunciar Share Postado Setembro 5, 2005 RESPOSTA RÁPIDA.Vou trabalhar em cima desta resposta e te retorno depois.Muito obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lisandro Oliveira Postado Setembro 6, 2005 Denunciar Share Postado Setembro 6, 2005 RESPOSTA RÁPIDA.Vou trabalhar em cima desta resposta e te retorno depois.Muito obrigado. Olá Rinaldo, faça assim:select * from tabela1 tbwhere not EXISTS (select <coluna onde esta os dados> from tabela2 where <coluna onde esta os dados> = tb.<coluna onde esta os dados>)Exemplo:select * from teste tewhere not EXISTS (select fone from testee where fone = te.fone)AbraçosLisandro Oliveira Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rinaldo Postado Setembro 6, 2005 Autor Denunciar Share Postado Setembro 6, 2005 complementando o problema, para finalizar, gostaria de que o SQL selecionasse todos os dados da tabela 2 com data = "x" e ai sim verificasse se existe coincidente na tabela 1.O código está desta forma;SQL = "SELECT produtos.* FROM produtos LEFT JOIN dados ON produtos.produto=dados.produto WHERE dados.produto IS NULL"produtos é tabela1 e dados é a tabela2Resumindo.Gostaria que verificasse na tabela 2 com a data de hoje se o produto da tabela 1 já entrou. Se não entrou, lista, se entrou, não lista.Eu tenho o campo "produto" em comum nas 2 tabelas e tenho o campo "data" na tabela "dados Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fercosmig Postado Setembro 6, 2005 Denunciar Share Postado Setembro 6, 2005 SQL = "SELECT produtos.* FROM produtos LEFT JOIN dados ON produtos.produto=dados.produto WHERE dados.produto IS NULL and tabela.data=" & Variavel_dataassim não funciona Rinaldo?não testei o codigo aqui..abraçosqqer coisa posta ae! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rinaldo Postado Setembro 6, 2005 Autor Denunciar Share Postado Setembro 6, 2005 Na realidade, não.SQL = "SELECT produtos.* FROM produtos LEFT JOIN dados ON produtos.produto=dados.produto WHERE dados.produto IS NULL and dados.data=#01/01/05#"na tabela produtos tenho somente o campo produto com os dados teste1,teste2, teste3, teste4, teste5 e teste6na tabela dados tenhos os campos produto e datasupondo que na tabela dados tivesse os registros teste1, teste2 e ambos com a data 01/01/05, deveria aparecer os dados de teste3, teste4, teste5 e teste6, correto??Não funciona. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rinaldo Postado Setembro 6, 2005 Autor Denunciar Share Postado Setembro 6, 2005 Para tentar simplificar, o usuario lista num formulario todos os produtos da tabela produtos que ainda não foram cadastrada com uma data especifica na tabela dados.Isso acontece diariamente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest select + simples Postado Setembro 8, 2005 Denunciar Share Postado Setembro 8, 2005 select * from produtos where prod_id NOT IN (select produtos.prod_id from produtos inner join dados on produtos.prod_id=dados.prod_id)você está negando a verdade, e quanto à data, essa sintaxe de where data=#01/01/05# tenha certeza que o ano tem 2 digitos na base de dados (pelas # acredito que seja access) caso ainda não funcione, tente assim:select * from produtos where prod_id NOT IN (select produtos.prod_id from produtos inner join dados on produtos.prod_id=dados.prod_id) AND YEAR(prod_data)=05 AND MONTH(prod_data)=01 AND DAY(prod_data)=01assim tem que funcionar!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rinaldo Postado Setembro 9, 2005 Autor Denunciar Share Postado Setembro 9, 2005 Ok. Vou testar.Muito obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Rinaldo
Por favor.
alguém poderia me ajudar nesta questão?
tenho 2 tabelas
tabela 1 com os dados ABCDE
tabela2 com os dados CDEDEDECDC
necessito listar todos os dados da tabela 1 que não estejam na tabela 2.
No caso, A e B
Como proceder???
Obrigado.
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.