ursolouco 0 Denunciar post Postado Agosto 24, 2006 Saudações!!! Senhores não sei se devo postar mas vou. Acho até meio estranho isso mas é a necessidade do momento. Como seria um t-sql agil e pratico para fazer: PEGUE OS DADOS DA TABELA A QUE NÃO ESTÁ NA B! Eu tentei de virsas formas e não cheguei à algo prático. Podem me ajudar ? $q = "SELECT * FROM A, B WHERE A.id <> B.a_id ORDER BY A.b DESC;"; Muito Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
lcs_sp 0 Denunciar post Postado Agosto 24, 2006 E ai beleza???Tente fazer isto:select * from TABELA1 left outer join TABELA2 on (CAMPO1=CAMPO2) where QQ CAMPO DA TABELA 2 is nullVE SE DÁ CERTO..T+ Compartilhar este post Link para o post Compartilhar em outros sites
ursolouco 0 Denunciar post Postado Agosto 25, 2006 E ai beleza???Tente fazer isto:select * from TABELA1 left outer join TABELA2 on (CAMPO1=CAMPO2) where QQ CAMPO DA TABELA 2 is nullVE SE DÁ CERTO..T+E ai Leo, beleza ?Valeu pela força mas não adiantou muito não. Acho que vai ter que ser na base: TODOS DE UMA -> LOOPING -> COUNT NA OUTRA -> SE NAÕ ESTIVER -> ENVIAR NEWS());Muito Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Agosto 25, 2006 No manual do MySQL temos o seguinte exemplo e explicação: 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. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Agosto 30, 2006 Tb poderia fazer usando o "not in"select *from Awhere not A.id in (select B.id from B) Compartilhar este post Link para o post Compartilhar em outros sites
cjfester 0 Denunciar post Postado Agosto 30, 2006 Senhores ! Aproveitando o assunto, tenho um problema com o mysql nesse tipo de consulta que até agora não entendo o que acontece. Tenho uma tabelaA com 50000 registros e uma tabelaB com 8000, e preciso fazer um update num dos campos de tabelaA quando não encontrar coincidentes na tabelaB. tabelaA chave varchar(24) valor ocorrencia tabelaB chave varchar(24) status método1: update tabelaA left join tabelaB on tabelaA.chave = tabelaB.chave set ocorrencia = 'teste1' where tabelaB.chave is null. Problema: essa consulta fica rodando "horas", sim, horas mesmo, não é força de expressão, e o campo apontado não é atualizado. método2: update tabelaA set ocorrencia = 'teste2' where tabelaA.chave not in (select distinct chave from tabelaB) Problema: essa consulta fica rodando "horas", sim, horas mesmo, não é força de expressão, e o campo apontado não é atualizado. As duas tabelas são MyIsam, sem indice. Já reparei o banco de dados, otimizei, e ainda assim não funciona. Seria o problema causado por causa do "nosso amigo" varchar ? Help me please ! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Agosto 31, 2006 Eu acho bem provável que realmente seja com o seu campo varchar, ainda mais que não tem indice na tabela. Compartilhar este post Link para o post Compartilhar em outros sites
cjfester 0 Denunciar post Postado Janeiro 9, 2007 Eu acho bem provável que realmente seja com o seu campo varchar, ainda mais que não tem indice na tabela.Realmente, foi só mudar de varchar para char (infelizmente tem de ser assim mesmo), e funcionou. Nem precisei usar chave. VARCHAR não serve pra esse tipo de coisa, só para nomes e descrições mesmo.Valeu. Compartilhar este post Link para o post Compartilhar em outros sites