이 내 테이블 정의입니다 :사용
CREATE TABLE orders_total (
orders_total_id int unsigned NOT NULL auto_increment,
orders_id int NOT NULL,
title varchar(255) NOT NULL,
text varchar(255) NOT NULL,
value decimal(15,4) NOT NULL,
class varchar(32) NOT NULL,
sort_order int NOT NULL,
PRIMARY KEY (orders_total_id),
KEY idx_orders_total_orders_id (orders_id)
);
인구 표는이 같은 (내 기억에서 모든 만들어 낸 숫자)를 볼 수 있습니다
1 - 13 - Shipping - $7.50 - 7.50 - ot_shipping - 2
2 - 13 - Tax - $8.00 - 8.00 - ot_tax - 4
3 - 13 - Total - $56.67 - 56.67 - ot_total - 3
4 - 14 - Shipping - $5.55 - 5.55 - ot_shipping - 2
5 - 14 - Discount - $6.40 - 6.40 - ot_discount - 1
6 - 14 - Coupon - $10.00 - 10.00 - ot_coupon - 5
7 - 14 - Total - $150.25 - 150.25 - ot_total - 3
모든 주문에는 다른 클래스가있을 수 있으며 모든 주문에는 정확한 클래스 수가 있어야하는 것은 아닙니다.
- 주문 1 : 예를 들어 ot_shipping, ot_total, ot_coupon, ot_discount
- ...
"주문"테이블 (여기 표시되지 않음)을 쿼리하고 위 테이블 (orders_total)을 조인하고 "클래스"가 "ot_total", " ot_coupon "또는"ot_discount ". 결과
첫 번째 세트 : 결과의
orders_id => 13
customers_name => John Doe
values => 7.50,8.00,56.67
두 번째 세트
SELECT o.orders_id, o.customers_name, group_concat(ot.value) AS values
FROM orders o
LEFT JOIN orders_total ot
ON ot.orders_id = o.orders.id
GROUP BY o.orders_id
위의 쿼리가 같은 것을 생산하는 것입니다 : 여기
는 이러한 쿼리를 작성에서 내 시도 :orders_id => 14
customers_name => Jane Roe
values => 5.55,6.40,10.00,150.25
보시다시피 필자가 원하는 값을 얻을 수는 있지만 어떤 숫자가 어떤 클래스에 속하는지 알 수 없습니다. 나는 ot_total, ot_discount 및 ot_coupon에만 관심이 있습니다.
아무도 해결책을 생각할 수 있습니까?
어쨌든 클래스 이름을 값에 추가 할 수 있습니까? 그래서 값 같은 것을 가질 수 => ot_shippimh7.50, ot_tax8.00, ot_total56.67
매우 유망 해 보입니다. 나는 내일 직장에서 그것을 분명히 시도 할 것이다. 그런데 데이터베이스를 만들지 않았습니다. 이것은 고대의 [osCommerce] (http://www.oscommerce.com/) 응용 프로그램에서 왔습니다 :) 감사합니다. – farjam