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

Seleccionar primer campo de una seccion en una consulta a mysql con SQL

Estas en el tema de Seleccionar primer campo de una seccion en una consulta a mysql con SQL en el foro de Mysql en Foros del Web. Hola a todos por aqui... tengo este pequeña consulta tengo una tabla de consultas de doctores y otra de doctores consultas id titulo id_doctor doctores ...
  #1 (permalink)  
Antiguo 30/06/2008, 23:10
Avatar de rustty  
Fecha de Ingreso: junio-2005
Mensajes: 68
Antigüedad: 18 años, 10 meses
Puntos: 1
Información Seleccionar primer campo de una seccion en una consulta a mysql con SQL

Hola a todos por aqui...

tengo este pequeña consulta

tengo una tabla de consultas de doctores y otra de doctores

consultas
  • id
  • titulo
  • id_doctor


doctores
  • id
  • nombre_doctor

Lo que necesito es seleccionar y mostrar la primera consulta de cada doctor del cual id_doctor en consultas esta haciendo referencia a id de doctores ...

A ver si me explique bien, sino diganme a ver y trato de explicarlo mejor

mil gracias de antemano y un saludo a todos
  #2 (permalink)  
Antiguo 01/07/2008, 06:02
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Seleccionar primer campo de una seccion en una consulta a mysql con SQL

Cita:
Iniciado por rustty Ver Mensaje
Hola a todos por aqui...

tengo este pequeña consulta

tengo una tabla de consultas de doctores y otra de doctores

consultas
  • id
  • titulo
  • id_doctor


doctores
  • id
  • nombre_doctor

Lo que necesito es seleccionar y mostrar la primera consulta de cada doctor del cual id_doctor en consultas esta haciendo referencia a id de doctores ...

A ver si me explique bien, sino diganme a ver y trato de explicarlo mejor

mil gracias de antemano y un saludo a todos
¿Con primera consulta quieres decir la más antigua?
Para eso sería recomendable poner un campo fecha en consulta. No obstante, puedes usar el id. Con esta consulta te muestra el nombre y el titulo de la primera consulta del doctor cuyo id es 4.
SELECT doctores.nombre_doctor, consultas.titulo from consultas INNER JOIN doctores ON doctores.id = consultas.id_doctor WHERE doctores.id = 4 ORDER BY consultas.id LIMIT 1

Y si quieres hacerlo de todos y cada uno:
Cita:
select d.nombre_doctor, t1.primera, c.titulo FROM doctores d INNER JOIN (SELECT MIN(id) as primera, id_doctor as doctor FROM `consultas` group by id_doctor) as t1 ON t1.doctor= d.id INNER JOIN consultas c ON t1.primera = c.id ORDER BY d.nombre_doctor

Última edición por jurena; 01/07/2008 a las 07:05
  #3 (permalink)  
Antiguo 01/07/2008, 08:32
Avatar de rustty  
Fecha de Ingreso: junio-2005
Mensajes: 68
Antigüedad: 18 años, 10 meses
Puntos: 1
De acuerdo Respuesta: Seleccionar primer campo de una seccion en una consulta a mysql con SQL

gracias hermano, en realidad queria el mas reciente de cada doctor...

Voy a tratar con la segunda consulta a ver si lo puedo hacer, creo q cambiando y el MIN por algo que signifique el MAXIMO creo q me dara el mas reciente, verdad

si sabes algo mas espesifico porfavor me lo dices

Y muchas gracias
  #4 (permalink)  
Antiguo 01/07/2008, 10:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Seleccionar primer campo de una seccion en una consulta a mysql con SQL

Con MAX(id) en lugar de MIN(id) te sacará el titulo más reciente de cada doctor...
  #5 (permalink)  
Antiguo 01/07/2008, 10:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Seleccionar primer campo de una seccion en una consulta a mysql con SQL

Con MAX(id) en lugar de MIN(id) te sacará el titulo más reciente de cada doctor...
PERDÓN: he respondido otra vez en lugar de editar
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 21:32.