1 message in com.mysql.lists.mysql-esDuda, LEFT JOIN
FromSent OnAttachments
javi...@empresas.telefonica.es21 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.