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

Pojedyncza instrukcja MySQL do połączenia dwóch tabel

Możesz to zrobić za pomocą join i 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;

Możesz to również zrobić za pomocą sekwencji złączeń:

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

Twój wynik wydaje się ograniczać to tylko do jednego identyfikatora użytkownika. Możesz chcieć where klauzula z tym filtrem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak znaleźć wszystkie relacje między wszystkimi tabelami mysql?

  2. Automatyczny ciąg znaków MySQL do rzutowania liczb całkowitych w klauzuli where?

  3. Aktualizacja schematu tabeli bez wpływu na dane w Laravel

  4. Jak stworzyć bloga w bazie PHP i MySQL - Admin Posts

  5. 4 przydatne narzędzia wiersza poleceń do monitorowania wydajności MySQL w systemie Linux