sql >> Database >  >> RDS >> Mysql

Enkele MySQL-instructie om twee tabellen samen te voegen

Je kunt dit doen met een join en een 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;

Je kunt dit ook doen met een reeks joins:

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';

Uw resultaat lijkt dit te beperken tot slechts één gebruikers-ID. Misschien wil je een where clausule met dit filter.



  1. Selecteer uit mysql-tabel WAAR field='$array'?

  2. haal de tabelnaam op uit een kolom voor van clausule

  3. Hoe GET_FORMAT() werkt in MariaDB

  4. Inleiding tot SQL Server