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

ฉันจะรวมคอลัมน์ในหลายตารางใน MySQL ได้อย่างไร


หากต้องการรวมคอลัมน์จากหลายตาราง ให้ใช้ UNION ALL เพื่อให้เข้าใจแนวคิด ให้เราสร้างตารางแรก แบบสอบถามในการสร้างตารางแรกมีดังนี้

mysql> สร้างตาราง Products1 -> ( -> ProductId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> ProductName varchar(20), -> ProductPrice int -> );Query OK, 0 แถวได้รับผลกระทบ (0.50 วินาที)

แทรกบางระเบียนในตารางแรกโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงใน Products1(ProductName,ProductPrice) values('Product-1',100);Query OK, 1 แถวได้รับผลกระทบ (0.22 sec)mysql> แทรกลงใน Products1(ProductName,ProductPrice) values('Product-2 ',200);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.34 วินาที)mysql> แทรกลงในค่า Products1(ProductName,ProductPrice) ('Product-3',700);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)

ตอนนี้คุณสามารถแสดงระเบียนทั้งหมดจากตารางแรกโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

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

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+-----------+-------------+--------------+| ProductId | ชื่อสินค้า | ราคาสินค้า |+-----------+-------------+-------------+| 1 | สินค้า-1 | 100 || 2 | สินค้า-2 | 200 || 3 | สินค้า-3 | 700 |+-----------+--------------------+--------------+3 แถวในชุด (0.00 วินาที)

ให้เราสร้างตารางที่สอง แบบสอบถามในการสร้างมีดังนี้

mysql> สร้างตาราง Products2 -> ( -> ProductId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> ProductName varchar(20), -> ProductPrice int -> );Query OK, 0 แถวได้รับผลกระทบ (0.63 วินาที)

แทรกบางระเบียนในตารางที่สองโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า Products2(ProductName,ProductPrice) ('Product-1',500) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.24 วินาที)mysql> แทรกลงในค่า Products2 (ProductName, ProductPrice) ('Product-4 ',100);ตกลง แบบสอบถาม 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า Products2(ProductName,ProductPrice) ('Product-5',400);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.10 วินาที)

ตอนนี้คุณสามารถแสดงระเบียนทั้งหมดจากตารางที่สองโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

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

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+-----------+-------------+--------------+| ProductId | ชื่อสินค้า | ราคาสินค้า |+-----------+-------------+-------------+| 1 | สินค้า-1 | 500 || 2 | สินค้า-4 | 100 || 3 | สินค้า-5 | 400 |+-----------+-------------+--------------+3 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อรวมคอลัมน์ในหลายตารางใน MySQL

mysql> SELECT SUM(tbl.ProductPrice) AS TotalPrice -> FROM (เลือกราคาผลิตภัณฑ์จาก Products1 -> UNION ALL -> เลือก ProductPrice จาก Products2) tbl;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+-----------+| ราคารวม |+-----------+| 2000 |+------------+1 แถวในชุด (0.04 วินาที)