1 message in com.mysql.lists.mysql-esDuda, LEFT JOIN| From | Sent On | Attachments |
|---|---|---|
| javi...@empresas.telefonica.es | 21 Apr 2004 08:04 |
| Subject: | Duda, LEFT JOIN![]() |
|---|---|
| From: | javi...@empresas.telefonica.es (javi...@empresas.telefonica.es) |
| Date: | 04/21/2004 08:04:45 AM |
| List: | com.mysql.lists.mysql-es |
Hola a todos:
Estoy realizando una consulta sobre cuatro tablas. Más o menos el esquema es el siguiente.
+---> [policy_list_erx] ----->[rate_limit_profile_erx] | [policy_subintfz_erx]---+ | +---> [vrf_erx]
Las tablas se relacionan en los campos con igual nombre. El objetivo es obtener los registros que estando en [policy_subintfz_erx], [policy_list_erx] , [rate_limit_profile_erx] y NO en [vrf_erx] (no coincidan los campos , nodo, slot, puerto, subinterfaz.)
La problematica que tengo es que si no pongo ninguna condición a los campos de la tabla [vrf_erx] en el WHERE, me salen tanto los registros que sí aparecen, como los que no, apareciendo nodo=slot=puerto=subinterfaz=NULL. Sin embargo si incluyo en el WHERE:
vrf_erx.nodo = '' AND >>(tambien he probado con vrf_erx.nodo IS NULL) vrf_erx.slot = '' AND vrf_erx.puerto = '' AND vrf_erx.subinterfaz = '' AND
El resultado es que no aparece ningún registro. Algo estoy haciendo mal / o es un error de concepto a la hora de realizar la consulta. Os agradecería muchísimo cualquier ayuda que me podais proporciar al respecto.
Muchas gracias a todos. Javier Pascua
QUERY ---------------->
SELECT vrf_erx.nodo, >>> Añado estos campos para comprobar si salen NULL o con Valores vrf_erx.slot, vrf_erx.puerto, vrf_erx.subinterfaz,
policy_subintfz_erx.nodo, policy_subintfz_erx.intfz_type, policy_subintfz_erx.slot, policy_subintfz_erx.puerto, policy_subintfz_erx.subinterfaz, policy_subintfz_erx.policy_name, policy_list_erx.precedence, policy_list_erx.classifier, policy_list_erx.rate_limit_profile, rate_limit_profile_erx.profile_type, rate_limit_profile_erx.reference_count, rate_limit_profile_erx.committed_rate, rate_limit_profile_erx.committed_burst, rate_limit_profile_erx.excess_burst, rate_limit_profile_erx.mask, rate_limit_profile_erx.committed_rate_action, rate_limit_profile_erx.conformed_rate_action, rate_limit_profile_erx.excced_rate_action
FROM
((policy_subintfz_erx LEFT JOIN policy_list_erx ON (policy_subintfz_erx.nodo = policy_list_erx.nodo) AND (policy_subintfz_erx.policy_name = policy_list_erx.policy_name))
LEFT JOIN rate_limit_profile_erx ON (policy_list_erx.nodo = rate_limit_profile_erx.nodo) AND (policy_list_erx.rate_limit_profile = rate_limit_profile_erx.rate_limit_profile))
LEFT JOIN vrf_erx ON (policy_subintfz_erx.nodo = vrf_erx.nodo) AND (policy_subintfz_erx.slot = vrf_erx.slot) AND (policy_subintfz_erx.puerto = vrf_erx.puerto) AND (policy_subintfz_erx.subinterfaz = vrf_erx.subinterfaz)
WHERE
policy_subintfz_erx.intfz_type LIKE "%thernet%" AND rate_limit_profile_erx.committed_rate != ""
");
Conozca las Soluciones para Grandes Empresas de Telefónica:
http://www.telefonica.es/empresas
Lea Pulso On Line, la revista para clientes de Telefónica Empresas:
http://www.telefonica.es/pulso
Consulte las experiencias de nuestros clientes:
http://www.telefonica.es/empresas/casospracticos
Este mensaje se dirige exclusivamente a su destinatario y puede contener informacion privilegiada o confidencial cuya divulgacion esta prohibida en virtud de la legislacion vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma via y proceda a su destruccion.




