Ver Mensaje Individual
  #13 (permalink)  
Antiguo 27/08/2014, 14:37
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: consultas con relaciones many-to-many ?

1.-Exacto, como bien te dije en DML(querys) no ocupas las FK, las FK son solo para la parte de DDL
2.-Aqui pongo los padres pero se puede generar lo que necesitas, pero en el ejemplo que manejo nada mas estan los padres(general) no se cuales son pareja y cuales solteros correcto? asi que digamos que agregamos una columna id pareja(solo para ejemplo) y podemos obtener esto:

Código SQL:
Ver original
  1. CREATE TABLE #padres
  2. (
  3. id INT IDENTITY(1,1),
  4. nombre VARCHAR(30),
  5. id_pareja INT
  6. )
  7.  
  8. CREATE TABLE #hijos
  9. (
  10. id INT IDENTITY(1,1),
  11. nombre VARCHAR(30)
  12. )
  13.  
  14. CREATE TABLE #relacion
  15. (
  16. id_padre INT,
  17. id_hijo INT
  18. )
  19.  
  20. INSERT INTO #padres VALUES ('Pepe',1)
  21. INSERT INTO #padres VALUES ('Sofia',1)
  22. INSERT INTO #padres VALUES ('Manolo',2)
  23. INSERT INTO #padres VALUES ('Maria',2)
  24.  
  25. INSERT INTO #hijos VALUES ('Josito')
  26. INSERT INTO #hijos VALUES ('Anita')
  27. INSERT INTO #hijos VALUES ('Vicentito')
  28.  
  29. INSERT INTO #relacion VALUES (1,1)
  30. INSERT INTO #relacion VALUES (1,2)
  31. INSERT INTO #relacion VALUES (4,1)
  32. INSERT INTO #relacion VALUES (2,2)
  33. INSERT INTO #relacion VALUES (2,3)
  34. INSERT INTO #relacion VALUES (3,3)
  35.  
  36. SELECT
  37. DISTINCT t1.id_pareja,t3.nombre
  38.  FROM #padres AS t1
  39. LEFT JOIN #relacion AS t2 ON (t2.id_padre=t1.id)
  40. LEFT JOIN #hijos AS t3 ON (t2.id_hijo=t3.id)
  41. WHERE t1.id IS NOT NULL

Y la traduccion de tu batch:

Código BASH:
Ver original
  1. for %f in hijos do SELECT hijos.nombre AS s1 WHERE s1 <> %f

seria:

Código SQL:
Ver original
  1. SELECT distint nombre FROM #hijos

Como comentario, no puedes aplicar la misma logica de programacion en una base de datos, esta cambia...ojo con eso.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me