Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL một câu lệnh để hợp nhất hai bảng

Bạn có thể thực hiện việc này với join và một nhóm 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;

Bạn cũng có thể thực hiện việc này với một chuỗi các phép nối:

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

Kết quả của bạn dường như chỉ giới hạn điều này ở một id người dùng. Bạn có thể muốn một where với bộ lọc này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cắt ngắn tất cả các bảng trong cơ sở dữ liệu MySQL trong một lệnh?

  2. Cách tạo DDL cho tất cả các bảng trong cơ sở dữ liệu trong MySQL

  3. Mysql - xóa khỏi nhiều bảng với một truy vấn

  4. Mã lỗi:1055 không tương thích với sql_mode =only_full_group_by

  5. MYSQL Left Join làm cách nào để chọn giá trị NULL?