Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL се присъединява с изявления за случаи

Не регистрирайте цялото вътрешно съединение, а само клаузата 'on' в съединението. Това трябва да работи (освен ако нямам правописни грешки):

  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

Можете също да постигнете подобен ефект, като ляво присъедините всяко от тези условия и след това използвате оператора case във вашия оператор select, за да определите от коя от двете таблици да се показват записи.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сериализацията на 'Closure' не е разрешена - laravel

  2. CASE производителност в MySQL?

  3. Включване на нарастваща стойност в този sql

  4. Когато автоматично създавате поддомейни при регистрация на потребител, създава ли се нов уебсайт или придава вид на уебсайт?

  5. Грешка при инсталиране на mysqlclient за python на Ubuntu 18.04