Ver Mensaje Individual
  #17 (permalink)  
Antiguo 29/09/2014, 11:00
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Unir dos tablas sin campos en común.

@jeremiselxi estas arrastrando un problema de diseño, es mucho mas simple modificar las tablas que enloquecerte con las consultas.

Lo que debes hacer, es en la tabla usuarios, agregar un campo que sea "id_rrhh" de esta forma puedes saber a que recurso humano corresponde cada usuario.
Si un usuario puede corresponder a varios rrhh debes crear una tabla auxiliar llamada "usuario_rrhh" con los campos "usuario_id", "rrhh_id" y hacer la relación.

Lo que estas haciendo es sumamente ambiguo.


De todas formas, (ESTAS AVISADO DE QUE ESTO TE VA A TRAER PROBLEMAS A INMEDIATO, CORTO Y LARGO PLAZO), si insistes en inventar una relacion donde no la hay, las relaciones deben ser creadas en el FROM no en el WHERE.

En tu primer pregunta seria algo asi:
Código MySQL:
Ver original
  1.     RRHH t1
  2.     INNER JOIN Usuarios_Aplicativo t2
  3.         ON (t1.Nombre_Completo LIKE '%'+t2.Nombre+'%' AND t1.Nombre_Completo LIKE '%'+t2.Apellido+'%')

Ahora bien, siguiendo ese criterio vamos a los updates:
Código MySQL:
Ver original
  1.     RRHH t1
  2.     INNER JOIN Aplication t2
  3.         ON (t1.Nombre_Completo LIKE '%'+t2.Nombre+'%' AND t1.Nombre_Completo LIKE '%'+t2.Apellido+'%')
  4. SET t1.Id_app = t2.Id_app;

Asi se arman las relaciones, pero esta muy mal (o al menos deberia evitarse a menos que no halla otra forma) armar una relacion con operadores como LIKE en base a expreciones regulares ya que eso volvera muy lenta a la base de datos con un volumen de datos grandes.

Lo mejor es lo que te sugirio @gnzsoloyo, armar relaciones de FK explicitas.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios