Hướng dẫn how do i combine multiple rows into one in mysql? - làm cách nào để kết hợp nhiều hàng thành một trong mysql?
Cảm ơn trước, tôi dường như không thể có được nó! Tôi có hai bảng Ordered_Item ID | Item_Name 1 | Pizza 2 | Stromboli Ordered_Options Ordered_Item_ID | Option_Number | Value 1 43 Pepperoni 1 44 Extra Cheese 2 44 Extra Cheese Những gì tôi đang tìm kiếm để đầu ra là một truy vấn MySQL là một cái gì đó cho hiệu ứng này Đầu ra ID | Item_Name | Option_1 | Option_2 1 Pizza Pepperoni Extra Cheese 2 Stromboli NULL Extra Cheese Tôi đã thử nhiều tùy chọn nhất trong lỗi cú pháp, tôi đã thử group_concat nhưng đó không thực sự là những gì tôi đang tìm kiếm. Tôi có một ví dụ thô thiển dưới đây về những gì tôi nghĩ có thể là một khởi đầu. Tôi cần các tùy chọn để theo cùng một thứ tự mỗi lần. Và trong chương trình mà thông tin được thu thập, không có cách nào đáng tin cậy đảm bảo điều đó sẽ xảy ra. Có thể có chúng liên kết theo số tùy chọn. Ngoài ra tôi biết rằng tôi sẽ không bao giờ có hơn 5 tùy chọn nên một giải pháp tĩnh sẽ hoạt động
Cảm ơn! Joe
Kermit 33.4K13 Huy hiệu vàng83 Huy hiệu bạc120 Huy hiệu đồng13 gold badges83 silver badges120 bronze badges hỏi ngày 1 tháng 7 năm 2009 lúc 5:34Jul 1, 2009 at 5:34 0 Cách dễ nhất là sử dụng chức năng nhóm nhóm_concat ở đây ..
Cái nào sẽ xuất hiện:
Bằng cách đó, bạn có thể có bao nhiêu tùy chọn như bạn muốn mà không phải sửa đổi truy vấn của mình. À, nếu bạn thấy kết quả của mình bị cắt, bạn có thể tăng giới hạn kích thước của nhóm_concat như thế này:
Đã trả lời ngày 1 tháng 7 năm 2009 lúc 5:43Jul 1, 2009 at 5:43
4
Tôi đánh giá cao sự giúp đỡ, tôi nghĩ rằng tôi đã tìm ra một giải pháp nếu ai đó sẽ bình luận về hiệu quả mà tôi sẽ đánh giá cao nó. Về cơ bản những gì tôi đã làm là. Tôi nhận ra nó có phần tĩnh trong việc thực hiện nhưng tôi làm những gì tôi cần nó để làm (tha thứ cho cú pháp không chính xác)
Kermit 33.4K13 Huy hiệu vàng83 Huy hiệu bạc120 Huy hiệu đồng13 gold badges83 silver badges120 bronze badges hỏi ngày 1 tháng 7 năm 2009 lúc 5:34Jul 1, 2009 at 6:59 2 Cách dễ nhất là sử dụng chức năng nhóm nhóm_concat ở đây ..
Cái nào sẽ xuất hiện:Jul 1, 2009 at 11:55
Bằng cách đó, bạn có thể có bao nhiêu tùy chọn như bạn muốn mà không phải sửa đổi truy vấn của mình. Select OI.ID, OI.Item_Name, OO1.Value, OO2.Value, OO3.Value, OO4.Value FROM Ordered_Items OI LEFT JOIN Ordered_Options OO1 ON OO1.Ordered_Item_ID = OI.ID LEFT JOIN Ordered_Options OO2 ON OO2.Ordered_Item_ID = OI.ID AND OO2.ID != OO1.ID LEFT JOIN Ordered_Options OO3 ON OO3.Ordered_Item_ID = OI.ID AND OO3.ID != OO1.ID AND OO3.ID != OO2.ID LEFT JOIN Ordered_Options OO4 ON OO4.Ordered_Item_ID = OI.ID AND OO4.ID != OO1.ID AND OO4.ID != OO2.ID AND OO4.ID != OO3.ID GROUP BY OI.ID, OI.Item_Name À, nếu bạn thấy kết quả của mình bị cắt, bạn có thể tăng giới hạn kích thước của nhóm_concat như thế này: Đã trả lời ngày 1 tháng 7 năm 2009 lúc 5:43Sep 16, 2009 at 20:22 Tôi đánh giá cao sự giúp đỡ, tôi nghĩ rằng tôi đã tìm ra một giải pháp nếu ai đó sẽ bình luận về hiệu quả mà tôi sẽ đánh giá cao nó. Về cơ bản những gì tôi đã làm là. Tôi nhận ra nó có phần tĩnh trong việc thực hiện nhưng tôi làm những gì tôi cần nó để làm (tha thứ cho cú pháp không chính xác) Ordered_Item_ID | Option_Number | Value 1 43 Pepperoni 1 44 Extra Cheese 2 44 Extra Cheese0 Đã trả lời ngày 1 tháng 7 năm 2009 lúc 6:59
Nếu bạn thực sự cần nhiều cột trong kết quả của mình và số lượng tùy chọn bị hạn chế, bạn thậm chí có thể làm điều này:Jun 1, 2017 at 4:37
Đã trả lời ngày 1 tháng 7 năm 2009 lúc 11:55 Nếu bạn biết bạn sẽ có một số tùy chọn tối đa giới hạn thì tôi sẽ thử điều này (ví dụ cho tối đa 4 tùy chọn cho mỗi đơn hàng): Nhóm theo điều kiện được loại bỏ tất cả các bản sao mà bạn sẽ nhận được. Tôi vừa triển khai một cái gì đó tương tự trên một trang web tôi đang làm việc ở nơi tôi biết tôi luôn có 1 hoặc 2 khớp trong bảng con của tôi và tôi muốn chắc chắn rằng tôi chỉ có 1 hàng cho mỗi mục cha mẹ. Đã trả lời ngày 16 tháng 9 năm 2009 lúc 20:22Oct 24, 2019 at 14:14
Đây là cách bạn sẽ xây dựng truy vấn của bạn cho loại yêu cầu này.hailong Về cơ bản, bạn "Out" mỗi cột bằng cách sử dụng Làm cách nào để cập nhật nhiều hàng của một cột trong MySQL?Có một vài cách để làm điều đó.Chèn vào các giá trị của học sinh (ID, SCORE1, SCORE2) (1, 5, 8), (2, 10, 8), (3, 8, 3), (4, 10, 7) trên bản cập nhật khóa trùng lặp điểm 1 = giá trị (giá trị (điểm1), điểm2 = giá trị (điểm2);INSERT INTO students (id, score1, score2) VALUES (1, 5, 8), (2, 10, 8), (3, 8, 3), (4, 10, 7) ON DUPLICATE KEY UPDATE score1 = VALUES(score1), score2 = VALUES(score2);
Pivot trong MySQL là gì?Xoay dữ liệu là một vấn đề khá phổ biến có nhiều hương vị khác nhau.Tại trung tâm của nó, yêu cầu là chuyển dữ liệu từ nhiều hàng sang các cột của một hàng.Yêu cầu này là đặc biệt phổ biến trong bối cảnh báo cáo.transpose data from multiple rows into columns of a single row. This requirement is particularity common in a reporting context. |