Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal tenho o seguinte select:
SELECT domainlist.dom_name, domainlist.dom_id, domainlist.dom_dest, domainlist.dom_status,
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,
if(dns.dns_name = 'use5.akam.net', 'yes', 'no') as reg_dns
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
LEFT JOIN dns ON domainlist.dom_name = dns.dom_dns
Ele está 'quase certo', pois está repetindo os dominios, segue o desc das tabelas:/applications/core/interface/imageproxy/imageproxy.php?img=http://i64.tinypic.com/2hyl5w9.png&key=5edec60e782810e11c46b496e00c60f9a5f6a4a7244b264bb4ce0887eba73dc6" alt="2hyl5w9.png" />
O resultado do select está correto mas está repetindo os dominios para cada dom_dns da tabela dns, pq não coloquei como UNIQUE? pq a relação é de N:N dns tem vários domínios e vice e versa. Alguém consegue me ajudar? Preciso dizer se um domínio está ou não em um certo dns..
>
Não sei se entendi bem o problema mas talvez um subselect com IN ou EXISTS resolva o problema.
Para você entender melhor, eu posso ter o mesmo dominio e o mesmo dns_name na tabela dns, pois a relação obrigatoriamente deve ser N:N como estou dando left join em dns, comparando os dominios, ele encontra mais ocorrências, o que eu queria pegar no select era, "O dominio TAL" tem/possui "TAL DNS"?
Consegui uma solução paliativa mas com uso de programação...o que pode ser um "gato"
ideia básica
select domainlist.dom_name, domainlist.dom_id,
(select count(*)
from dns where dns.dom_dns = domainlist.dom_name) qtd_dns
from domainlist
....pela sua propria descricao nao tem com nao repetir
Eu resolvi com um laço e uma função de select.. o que seria um select dentro do outro...valeu pela força pessoal.
Não sei se entendi bem o problema mas talvez um subselect com IN ou EXISTS resolva o problema.