Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/09/2011, 12:18
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Duda con left join

Hola moron:

Creo que el problema está en que estás poniendo la condición ProductoLocalizacion.lenguaje = 'es-AR' en el WHERE, sin embargo esta se aplica DESPUÉS DE HACER EL LEFT JOIN, por lo tanto estás obligando a que exista información en la tabla ProductoLocalizacion para poder mostrar la información, en otras palabras, estás haciendo un INNER JOIN, a reserva de que pruebas la opción de Iislas y funcione puedes intentar hacer esto:

Código SQL:
Ver original
  1. SELECT   
  2. dbo.Producto.IdProducto,
  3. dbo.Producto.Codigo,
  4. dbo.Producto.IdFamilia,
  5. dbo.Producto.StockCritico,
  6. dbo.Producto.Stock,
  7. dbo.Producto.Precio,
  8. dbo.ProductoLocalizacion.lenguaje,
  9. dbo.ProductoLocalizacion.nombre,
  10. dbo.ProductoLocalizacion.Descripcion
  11. FROM dbo.Producto LEFT JOIN dbo.ProductoLocalizacion
  12. ON
  13. dbo.ProductoLocalizacion.idProducto = dbo.Producto.IdProducto
  14. AND ProductoLocalizacion.lenguaje = 'es-AR'
  15. WHERE producto.idProducto=1

O también podrías hacer la condición así:

Código SQL:
Ver original
  1. SELECT   
  2. dbo.Producto.IdProducto,
  3. dbo.Producto.Codigo,
  4. dbo.Producto.IdFamilia,
  5. dbo.Producto.StockCritico,
  6. dbo.Producto.Stock,
  7. dbo.Producto.Precio,
  8. dbo.ProductoLocalizacion.lenguaje,
  9. dbo.ProductoLocalizacion.nombre,
  10. dbo.ProductoLocalizacion.Descripcion
  11. FROM dbo.Producto LEFT JOIN dbo.ProductoLocalizacion
  12. ON
  13. dbo.ProductoLocalizacion.idProducto = dbo.Producto.IdProducto
  14. WHERE producto.idProducto=1
  15. AND (ProductoLocalizacion.lenguaje = 'es-AR' OR ProductoLocalizacion.lenguaje IS NULL)

haz la prueba y nos comentas.

Saludos
Leo.