sql >> Databáze >  >> RDS >> Mysql

Jediný příkaz MySQL pro sloučení dvou tabulek

Můžete to udělat pomocí join a 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;

Můžete to také provést pomocí sekvence spojení:

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

Zdá se, že váš výsledek to omezuje pouze na jedno ID uživatele. Možná budete chtít where klauzule s tímto filtrem.



  1. mySQL Vrátí prvních 5 z každé kategorie

  2. Azure Virtual Machines pro použití SQL Server

  3. Porovnání nabídek Galera Cluster Cloud:Část třetí Microsoft Azure

  4. Automatické upgrady PostgreSQL clusterů v cloudu s téměř nulovým výpadkem (část II)