Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/01/2015, 18:29
Avatar de EderBarriosCamargo
EderBarriosCamargo
 
Fecha de Ingreso: marzo-2013
Mensajes: 55
Antigüedad: 11 años, 9 meses
Puntos: 0
left join no funciona

Buenas tardes, Compañer@s necesito ayuda para terminar esta consulta,
te la tabla "grupos" que es donde se guardan accesorios de celular, la otra es Productos que es donde se guardan los Celulares y la otra tabla llamada ProductoVsGrupos
Donde Guardo el registro de que accesorio esta relacionado a que producto.

La Consulta es la Siguiente:
Quiero que me traga todos los grupos (Todos los accesorios) que tiene y no tiene un producto.

Es decir si esta o no relacionado en la tabla ProductoVsGrupos
La consulta que tengo hasta el momento es esta.

Tabla Grupo
GruId-GruNombre
1-Accesorio 1
2-Acceorios 2
3-Accesorio 3

Tabla Producto
ProId-ProNombre
1-Producto 1
2-Producto2
3-Producto 3


Tabla ProductoVsGrupo
PvgId-PvgIdProducto-PvgIdGrupo
1 - 1 - 1

Claramente vemos que el producto1 tiene el accesorio 1
El resultado deberia ser el siguiente

ProNombre-GruNombre
Producto 1- Grupo 1
null - Grupo 2
null - Grupo 3




Código SQL:
Ver original
  1. SELECT top 10 [ProNombre], [PvgId], [ProCodigo], [GruId], [GruNombre]
  2. , (CASE WHEN ProId IS NULL THEN 0 ELSE 1 END) AS Radio
  3. , (CASE WHEN ProId IS NULL THEN 'enabled' ELSE 'disabled' END) AS Attr
  4. FROM [Grupos]
  5. LEFT JOIN [ProductosVsGrupos] ON [GruId] = [PvgIdGrupo]
  6. LEFT JOIN [Productos] ON [PvgIdProducto] = [ProId]
  7. WHERE [PvgIdProducto] = '1' OR [PvgIdProducto] IS NULL


Otra cosa quiero evitar hacer subconsultas ya que existen muchos registros.

Gracias por su colaboracion.