Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL łączy się z oświadczeniami dotyczącymi spraw

Nie rób wielkości liter dla całego sprzężenia wewnętrznego, tylko dla klauzuli „on” w łączeniu. To powinno działać (chyba że mam literówki):

  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

Możesz również osiągnąć podobny efekt, łącząc w lewo każdy z tych warunków, a następnie używając instrukcji case w instrukcji select, aby określić, z której z dwóch tabel mają być wyświetlane rekordy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. AWS rds - Jak czytać z repliki do odczytu wewnątrz aplikacji Java?

  2. Jak zabezpieczyć serwery MySQL/MariaDB

  3. jak zresetować hasło użytkownika root w środowisku MySQL?

  4. Jak ta witryna naprawia kodowanie?

  5. Laravel 5:Naruszenie ograniczenia integralności:1452 Nie można dodać lub zaktualizować wiersza podrzędnego:ograniczenie klucza obcego nie powiodło się