Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/11/2017, 15:21
mblascog
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Left join limit 1

Buenas,
Necesito implementar un LEFT JOIN que sólo devuelva un registro, sólo uno, me da igual el primero o el último.
Tengo la siguiente instrucción:
Código MySQL:
Ver original
  1. SELECT tr.dia, tr.proyecto, tr.tarea, ta.descripcion
  2. FROM trabajoshoras tr
  3. LEFT JOIN tareas ta ON ta.codigo=tr.tarea AND ta.proyecto=tr.proyecto
  4. LEFT JOIN usuarios us ON tr.operario = us.cod
  5. WHERE tr.anyo = '2017' AND tr.mes = '09' AND tr.operario = '10' AND dia='18'
  6. ORDER BY us.apellidos, tr.dia, tr.inicio, tr.final

Este LEFT JOIN
Código MySQL:
Ver original
  1. LEFT JOIN tareas ta ON ta.codigo=tr.tarea AND ta.proyecto=tr.proyecto
devuelve dos registros y quiero que sólo devuelva uno

Mirando por Google, creo que debería hacer algo así, pero no me sale
Código MySQL:
Ver original
  1. SELECT tr.dia, tr.proyecto, tr.tarea, ta.descripcion
  2. FROM trabajoshoras tr
  3. LEFT JOIN tareas ta ON ta.descripcion=(SELECT descripcion FROM tareas WHERE codigo=tr.tarea AND proyecto=tr.proyecto LIMIT 1)
  4. LEFT JOIN usuarios us ON tr.operario = us.cod
  5. WHERE tr.anyo = '2017' AND tr.mes = '09' AND tr.operario = '10' AND dia='18'
  6. ORDER BY us.apellidos, tr.dia, tr.inicio, tr.final

Muchas gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no