Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

junior.vieira

Dúvida select php

Recommended Posts

Pessoal, como posso comparar 3 tabelas, todas tem um dominio_nome por exemplo. Tentei SELECT akamai.*, infoblox.*, dominio.* from dominio INNER JOIN akamai, infoblox on dominio.dom_name = akamai.reg_dom_name and infoblox.reg_dom_name LIMIT 0, 25

Mas deu ruim.

 

Para ter uma ideia do que eu quero fazer, segue imagem.

116hv2c.png

 

 

Agradeço a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, acredito que o seu SQL possa estar com erro de sintaxe, ja executou ele direto no banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua sintaxe INNER JOIN está incorreta.

 

A sintaxe correta é:

SELECT A.* FROM Tabela1 A INNER JOIN Tabela2 B ON B.idcampo = A.idcampo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu quase resolvi com o código

SELECT infoblox.reg_dom_name FROM infoblox INNER JOIN dns ON infoblox.reg_dom_name = dns.dom_dns;

Porém na minha tabela DNS, o campo dom_dns (contém o dominio), que não pode ser UNIQUE, pq um DNS 1:N DOMINIO, tem dominios repetidos, nesse SELECT ele traz o número repetidos de dominios, pq estou dando inner join em dns, simples, a tablema DNS tem todos dominios, Todos, ao contrario de INFOBLOX, AKAMAI, e REGISTROBR.

Como consigo trazer todos dominios sem repetilos? ajudaai

Compartilhar este post


Link para o post
Compartilhar em outros sites


SELECT dominio.dom_name,

 

 

(SELECT count(*) from akamai where akamai.reg_dom_name = dominio.dom_name) as akamai,

(SELECT count(*) from regbr where regbr.reg_dom_name = dominio.dom_name) as regbr,

(SELECT count(*) from infoblox where infoblox.reg_dom_name = dominio.dom_name) as infoblox

 

 

FROM dominio

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT dominio.dom_name,


(SELECT count(*) from akamai where akamai.reg_dom_name = dominio.dom_name) as akamai,
(SELECT count(*) from regbr where regbr.reg_dom_name = dominio.dom_name) as regbr,
(SELECT count(*) from infoblox where infoblox.reg_dom_name = dominio.dom_name) as infoblox


FROM dominio

macielcr7 conseguiria me explicar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso é o que vc quer na imagem que vc citou no post.

 

se o count = 0 entao o dominio nao ta registrado para aquela area

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso é o que você quer na imagem que você citou no post.

 

se o count = 0 entao o dominio nao ta registrado para aquela area

Valeu mano, de fato fez o que eu precisava, porém eu fiz de outra forma, consegui pensar aqui. Mesmo assim você colocar como você que resolveu. :)

 

Segue meu select.

SELECT domainlist.dom_name, 
if(ISNULL(akamai.reg_dom_name), 0, 1) as reg_akamai, 
if(ISNULL(infoblox.reg_dom_name), 0, 1) as reg_infoblox, 
if(ISNULL(registro.reg_dom_name), 0, 1) as reg_registro 
FROM domainlist 
LEFT JOIN akamai ON domainlist.dom_name = akamai.reg_dom_name 
LEFT JOIN infoblox ON domainlist.dom_name = infoblox.reg_dom_name 
LEFT JOIN registro ON domainlist.dom_name = registro.reg_dom_name

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.