Đây là một truy vấn tổng hợp tiêu chuẩn:
SELECT uc.uut_sn,
MAX(CASE
WHEN uc.characteristic_name = 'char_name_1' THEN uc.characteristic_value
ELSE NULL
END) AS char_name_1,
MAX(CASE
WHEN uc.characteristic_name = 'char_name_2' THEN uc.characteristic_value
ELSE NULL
END) AS char_name_2,
MAX(CASE
WHEN uc.characteristic_name = 'char_name_3' THEN uc.characteristic_value
ELSE NULL
END) AS char_name_3,
FROM unit_characteristics uc
GROUP BY uc.uut_sn
Để làm cho nó động, bạn cần sử dụng Cú pháp SQL động của MySQL được gọi là Câu lệnh chuẩn bị
. Nó yêu cầu hai truy vấn - truy vấn đầu tiên lấy danh sách characteristic_name
các giá trị, vì vậy bạn có thể nối chuỗi thích hợp vào các biểu thức CASE như bạn thấy trong ví dụ của tôi dưới dạng truy vấn cuối cùng.