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

Una consulta endiablada

Estas en el tema de Una consulta endiablada en el foro de Mysql en Foros del Web. Hola team!, soy nuevo y ante todo quiero agradeceros el site de gran ayuda que entre todos estais haciendo ! ¿Alguien puede ayudarme con esta ...
  #1 (permalink)  
Antiguo 12/08/2009, 02:46
 
Fecha de Ingreso: agosto-2009
Mensajes: 5
Antigüedad: 14 años, 8 meses
Puntos: 0
Una consulta endiablada

Hola team!, soy nuevo y ante todo quiero agradeceros el site de gran ayuda que entre todos estais haciendo !

¿Alguien puede ayudarme con esta endiablada consulta? Hace más de 1 hora que lo intento y no lo consigo.

Tengo dos tablas:

Tabla ALUMNOS con un solo campo llamado [nombre]
reg1: jose
reg2: carlos
reg3: sandra
reg4: luis

TABLA CURSOS con dos campos: [nombre] y [curso] y estos datos:
reg1: jose, guitarra
reg2: jose, cocina
reg3: carlos, guitarra
reg4: luis, cocina

Quiero hacer algo tan "sencillo" como una consulta que saque un listado de TODOS los alumnos y que a la derecha de cada uno que salga un 1 si tiene el curso de guitarra o un 0 si no lo tiene.

Parece sencillo pero me trae de cabeza!. Lo que he hecho es una consulta de agrupación de alumnos por un lado (group de todos los nombres de la tabla alumnos) y a la derecha de cada uno que cuenta las veces que en la tabla cursos
ese alumno sale apuntado al de guitarra (un count de curso donde curso=guitarra) pero nada, ya que esa ultima condicion me destroza la seleccion previa de todos los alumnos.

GRACIAS POR ANTICIPADO !!
  #2 (permalink)  
Antiguo 12/08/2009, 03:38
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Una consulta endiablada

Echa un vistazo aqui:

http://www.forosdelweb.com/f86/consu...con-if-521144/
  #3 (permalink)  
Antiguo 12/08/2009, 06:28
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años
Puntos: 2
Respuesta: Una consulta endiablada

Hola Prunera

Prueba con este codigo, creo hace lo que necesitas.

Código MYSQL:
Ver original
  1. a.nombre,
  2. SUM(IF(c.curso='GUITARRA',1,0)) Guitarra,
  3. SUM(IF(c.curso='COCINA',1,0)) COCINA
  4. FROM alumnos a
  5. LEFT JOIN curso c
  6. ON a.nombre = c.alumno
  7. GROUP BY a.nombre

Ahh y por cierto las consultas no se endiablan......
  #4 (permalink)  
Antiguo 13/08/2009, 00:59
 
Fecha de Ingreso: agosto-2009
Mensajes: 5
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Una consulta endiablada

Gracias! Al final lo probé con SELECT CASE y me funcionó.
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 15:55.