Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/11/2009, 14:57
oscarbt
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años, 8 meses
Puntos: 27
De acuerdo sintaxis right join

Buenas a todos, espero me puedan colaborar

tengo estas tres tablas:

Código sql table interprete:
Ver original
  1. create table INTERPRETE
  2. (
  3.    COD_INT              char(10) not null,
  4.    COD_CIU              char(4) not null,
  5.    NOM_PIL_INT          char(60),
  6.    NOM_REA_INT          char(70),
  7.    FEC_NAC_INT          date,
  8.    primary key (COD_INT)
  9. );

Código sql giras:
Ver original
  1. create table GIRAS_GRUPO
  2. (
  3.    COD_GRUP             char(5) not null,
  4.    COD_GIR              char(5) not null,
  5.    primary key (COD_GRUP, COD_GIR)
  6. );

Código sql giras_interprete:
Ver original
  1. create table GIRAS_INTERPRETE
  2. (
  3.    COD_INT              char(10) not null,
  4.    COD_GIR              char(5) not null,
  5.    primary key (COD_INT, COD_GIR)
  6. );

quiero traer la gira que haya sido cancelada, es decir, esa gira existe en la tabla giras, pero no esta en la tabla giras_interprete

Por medio de la siguiente sintaxis, traigo el todo el lsitado de giras y me aparece la que no tiene cantantes como NULL, pero lo que yo quiero es que solo me traiga esa gira que no tiene cantantes
aqui el codigo:

Código:
SELECT i.NOM_PIL_INT, "CANTANTE", group_concat(g.NOM_GIR separator "-") FROM (interprete i RIGTH JOIN giras_interprete gi ON i.COD_INT=gi.COD_INT) RIGHT JOIN giras g ON gi.COD_GIR=g.COD_GIR GROUP BY gi.COD_INT;
Con esta sentencia me muestra todas las giras, y tambien la gira que no tuvo cantantes, mi duda es que le debo agregar para que solo me traiga la gira que no tuvo cantantes ??

Agradezco una buena colaboracion