Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

canciones q no son de un interprete

Estas en el tema de canciones q no son de un interprete en el foro de Mysql en Foros del Web. Buenas a todos quiero hacer una consulta pero no se como plantearla tengo tres tablas: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código tabla cancion: Ver original create table CANCION ...
  #1 (permalink)  
Antiguo 07/12/2009, 15:59
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
De acuerdo canciones q no son de un interprete

Buenas a todos

quiero hacer una consulta pero no se como plantearla

tengo tres tablas:


Código tabla cancion:
Ver original
  1. create table CANCION
  2. (
  3.    COD_CAN              char(10) not null,
  4.    NOM_CAN              char(25),
  5.    DUR_CAN              time,
  6.    LET_CAN              varchar(500),
  7.    primary key (COD_CAN)
  8. );

Código tabla 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. );

y el sql de la tabla canciones_interprete

Código tabla canciones_interprete:
Ver original
  1. create table CANCIONES_INTERPRETE
  2. (
  3.    COD_INT              char(10) not null,
  4.    COD_CAN              char(10) not null,
  5.    primary key (COD_INT, COD_CAN)
  6. );

mi consulta es la siguiente:

como hago para traer el listado de canciones que no son de un artista

por ejemplo: necesito ver las canciones que estan en la base de datos, que no sean del artista x
  #2 (permalink)  
Antiguo 07/12/2009, 18:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: canciones q no son de un interprete

Código sql:
Ver original
  1. SELECT C.*
  2. FROM CANCIONES C INNER JOIN CANCIONES_INTERPRETE CI USING(COD_CAN)
  3. WHERE CI.COD_IN!=codigodelinterprete;

Y si lo deseas hacer buscando el nombre:

Código sql:
Ver original
  1. SELECT C.*
  2. FROM CANCIONES C
  3.           INNER JOIN CANCIONES_INTERPRETE CI USINC(COD_CAN)
  4.           INNER JOIN INTERPRETE I USING (COD_INT)
  5. WHERE I.NOM_PIL NOT LIKE '%nombredelinterprete%';
Aunque en este último caso habría que refinar mucho más, porque el uso de busquedas por expresiones normales es más complejo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/12/2009, 10:13
 
Fecha de Ingreso: diciembre-2009
Mensajes: 1
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: canciones q no son de un interprete

Puedes crear una vista para la tabla canciones_interprete llamada "CAN_INT_VIEW" de la siguiente forma:

Código:
create or replace view CAN_INT_VIEW as 
select ART.NOM_PIL_INT as INTERPRETE,CAN.NOM_CAN
from CANCIONES_INTERPRETE 
left join CANCION as CAN using(COD_CAN)
left join INTERPRETE as ART using(COD_INT)
luego puedes seleccionar directamente usando dicha vista, de la siguiente manera:

Código:
select * from CAN_INT_VIEW where INTERPRETE<>'nombre del artista'
Con lo que se listaria todas las canciones excepto el interprete indicado. Con la sentencia:

Código:
select * from CAN_INT_VIEW where INTERPRETE NOT LIKE 'nombre del artista'
genera el mismo resultado.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:40.