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

MySQL единичен израз за сливане на две таблици

Можете да направите това с join и group by :

select u.*, firstname, lastname
from user u join
     (select uf.user_id,
             max(case when key = 'firstname' then value end) as firstname,
             max(case when key = 'lastname' then value end) as lastname
      from user_field uf
      group by user_id
     ) uf
     on uf.user_id = u.id;

Можете също така да направите това с поредица от присъединявания:

select u.*. firstname.value, lastname.value
from user u join
     user_field firstname
     on u.id = firstname.user_id and firstname.key = 'firstname' join
     user_field lastname
     on u.id = lastname.user_id and lastname.key = 'lastname';

Вашият резултат изглежда ограничава това само до един потребителски идентификатор. Може да искате where клауза с този филтър.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на визуална база данни с MySQL Workbench

  2. Проблем с ОСНОВЕН КЛЮЧ при създаване на таблици в Rails с помощта на команда rake db:migrate с mysql

  3. Как правилно да избегнете условията на Mysql Race

  4. Как да получа данни от база данни за преглед на страница в laravel?

  5. Използване на Python3 mysqlclient-1.3.6 (известен още като PyMySQL)?