나는 4 개의 테이블을 가지고 있습니다 : users
, orders
, orders_product
및 products
입니다. 그들은 외래 키다중 내부 조인 사용
사용자 테이블에 의해 서로 연결되어 에는 다음이 포함 id
, name
, email
및 username
을.
제품 테이블에는 다음이 포함 id
, product_name
, product_description
및 product_price
주문 테이블에는 다음이 포함 id
을 u_id(foreign key)
.
orders_product table contains : id
, product_id(foreign key)
, order_id(foreign key)
.
SELECT prod.order_id,
SUM(product_price) AS Total
FROM products
INNER JOIN
(SELECT orders.id AS order_id,
orders_product.product_id
FROM orders
INNER JOIN orders_product ON orders.id = orders_product.order_id
WHERE order_id=1) AS prod ON products.id = prod.product_id;
그것은 나에게 특정 순서의 총 가격을 보여 주었다 :
내가 갔다 할 수있는 최대는 다음과 같이이었다. 이제 두 가지 질문이 있습니다.
해당 쿼리가 정확합니까? 아주 긴 쿼리처럼 보입니다. 작은 결과로 동일한 결과를 얻을 수 있습니까? 그가 배치했다고 특정 순서의 총 가격을 가진 사용자의 이름을 인출하는 방법
.
왜 주문이라는 별도의 표가 필요합니까? 그것을 제거 할 수 있습니다. – jack