Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จะรวมเร็กคอร์ดสองสามแถวใน MySQL ได้อย่างไร


สำหรับสิ่งนี้ ให้ใช้แนวคิด CASE WHEN ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง demo68−> (−> id int ไม่ใช่ null auto_increment คีย์หลัก,−> company_name varchar(50),−> employee_name varchar(50),−> country_name varchar(50)−> );แบบสอบถามตกลง , ได้รับผลกระทบ 0 แถว (1.86 วินาที)

แทรกระเบียนบางส่วนลงในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงใน demo68(company_name,employee_name,country_name)values('Google','John','US');Query OK, 1 แถวได้รับผลกระทบ (0.29 วินาที)mysql> แทรกลงใน demo68(company_name,employee_name, country_name)values('Google','Bob','UK');Query OK, 1 แถวได้รับผลกระทบ (0.10 วินาที)mysql> แทรกลงใน demo68(company_name,employee_name,country_name)values('Google','David',' AUS');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.08 วินาที)

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก demo68;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----+--------------+--------------+---------- ----+| id | company_name | พนักงาน_name | country_name |+----+--------------+--------------+----------- ----+| 1 | Google | จอห์น | สหรัฐอเมริกา || 2 | Google | บ๊อบ | สหราชอาณาจักร || 3 | Google | เดวิด | AUS |+----+--------------+--------------+----------- ---+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อรวมระเบียนไม่กี่แถวใน MySQL -

mysql> select−> company_name,−> max(กรณีที่ Country_name='US' จากนั้น employee_name end) asUS_Employee_Name,−> max(case when country_name='UK' then employee_name end) asUK_Employee_Name,−> max(กรณีที่ country_name='AUS' จากนั้น employee_name end) asAUS_Employee_Name−> จาก demo68−> จัดกลุ่มตาม company_name;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+--------------+--------------------------+----------- ---------------------------------------+| company_name | US_Employee_Name | UK_Employee_Name | AUS_Employee_Name |+--------------+---------------------------------------- -----+--------------------------------+| Google | จอห์น | บ๊อบ | เดวิด |+-------------+--------------------------+------------- -----+-------------------------------- +1 แถวในชุด (0.05 วินาที)