sql >> Database >  >> RDS >> Mysql

MySQL sluit zich aan bij Case Statements

Gebruik geen case voor de hele inner join, maar doe het alleen voor de 'on'-clausule in de join. Dit zou moeten werken (tenzij ik typefouten heb):

  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

U kunt ook een soortgelijk effect bereiken door links bij elk van deze voorwaarden te blijven en vervolgens de case-instructie in uw select-instructie te gebruiken om te bepalen uit welke van de twee tabellen records moeten worden weergegeven.




  1. Rails:schrijf-/leesquery splitsen over master/slave-database

  2. Joda Time - Hibernate voegt de datum van gisteren in de database in

  3. PHP Update MySQL-tabel met HTML-formulier

  4. ORACLE en TRIGGERS (ingevoegd, bijgewerkt, verwijderd)