Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
/applications/core/interface/imageproxy/imageproxy.php?img=http://i68.tinypic.com/116hv2c.png&key=6fe2ea89261b200ce86b9109763ce8dc570f767bc1be880beedcd3d4f9cd8ed8" alt="116hv2c.png" />
Agradeço a ajuda!
já, as 3 tabelas, são praticamente iguais, os campos tem o mesmo nome.
Sua sintaxe INNER JOIN está incorreta.
A sintaxe correta é:
SELECT A.* FROM Tabela1 A INNER JOIN Tabela2 B ON B.idcampo = A.idcampo
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? ajudaaiSELECT 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
>
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?
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
>
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
Amigo, acredito que o seu SQL possa estar com erro de sintaxe, ja executou ele direto no banco?