sql >> Base de Datos >  >> RDS >> Mysql

MySQL se une con declaraciones de casos

No use mayúsculas y minúsculas en toda la unión interna, hágalo solo en la cláusula 'on' de la unión. Esto debería funcionar (a menos que tenga errores tipográficos):

  SELECT 
    conversation.c_id,
    conversation.user_one,
    conversation.user_two,
    users.name,
    users.lastName
  FROM `conversation` 
  INNER JOIN `users`
  on
  users.id =
  CASE
    WHEN conversation.user_one = 1
    THEN conversation.two 
    WHEN conversation.user_two = 1
    THEN conversation.user_one   
 END
 WHERE `user_one` = 1 OR `user_two` = 1

También puede lograr un efecto similar si se une a la izquierda en cada una de estas condiciones y luego usa la declaración de caso en su declaración de selección para determinar de cuál de las dos tablas se mostrarán los registros.