Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/03/2012, 09:52
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta a multiples tablas

Hola freedert:

Hay varios detalles a considerar en tu consulta:

En primer lugar, al poner esto:

Código MySQL:
Ver original
  1. FROM mov_factura, mov_nc, mov_n

y no poner ninguna condición de unión en el where ESTÁS REALIZANDO EL PRODUCTO CARTESIANO entre tus tablas... además, no es recomendable utilizar esta forma de unión entre tablas, en lugar de hacer las uniones explícitas DEBES UTILIZAR LOS JOIN'S.

Código:
en lugar de esto:

FROM tabla1, tabla2 WHERE tabla1.campo = tabla2.campo

hacer esto 

FROM tabla1 INNER JOIN tabla2 ON tabla1.campo, tabla2.campo
En segundo lugar... el error de "ambiguous": el DBMS no es adivino, sólo puede hacer algo que no implique decisiones (a menos que le digas el criterio para elegir), al existir el campo en cod_cliente en todas las tablas, ¿cuál de los tres es el que debería utilizar para ordenar los datos?... debes especificar de manera clara sobre cuál de los tres campos se debe realizar la ordenación, anteponiendo el nombre de la tabla a la que hace referencia.

Código:
 WHERE tabla1.campo = 'XXX' and tabla2.campo = 'YYY' 
ORDER BY tabla3.campo 
..................
De esta manera, no importa que el campo se repita en n tablas con el mismo nombre...

Mucho ojo... estos son conceptos básicos de Base de Datos... si apenas estás aprendiendo lee primero cualquier manual para principiantes, de lo contrario tendrás muchos dolores de cabeza.

Saludos
Leo.