I have a product parts table like this: part part_id part_type product_id -------------------------------------- 1A1 2 B 1 3A2 4 B 2 5A3 6 B 3 I want a query that returns a table like this: product_id part_A_id part_B_id ---------------------------------------- 1 1 2 2 3 4 3 5 6 In actual implementation, there will be millions of product parts 1 Answer Unfortunately, MySQL doesn't have a PIVOT function, but you can model it using aggregate functions and a CASE statement. For a dynamic version you'll need to use a prepared statement: SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'max(case when part_type = ''',part_type,''' then part_id end) AS part_','_id' ) ) INTO @sql FROM parts; SET @sql = CONCAT('SELECT product_id,',@sql,' FROM parts GROUP BY product_id'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; If you only have a few columns then you can use the static version: select product_id,max(case when part_type ='A' then part_id end) as Part_A_Id,max(case when part_type ='B' then part_id end) as Part_B_Id from parts group by product_id Summarize The above is all the content of MySQL dynamic perspective collected and organized by 123WORDPRESS.COM for you. I hope this article can help you solve the program development problems encountered in MySQL dynamic perspective. You may also be interested in:
|
<<: React+TypeScript project construction case explanation
>>: How to upgrade all Python libraries in Ubuntu 18.04 at once
Table of contents 1. What is an event? 2. How to ...
This article shares the specific code for impleme...
In design work, I often hear designers participati...
Table of contents introduction MySQL High Availab...
mistake The following error occurs when connectin...
Preface Most people will probably perform this op...
Before talking about CSS priority, we need to und...
Installing Electron cnpm install electron -g Inst...
This article example shares the specific code for...
Today, the error "No input file specified&qu...
1. As mentioned above I saw this macro when I was...
Table of contents Overview 1. How to animate a DO...
This article shares the specific code for js to r...
Description of the problem: When the number of as...
Configure multiple servers in nginx.conf: When pr...