2017-10-22 4 views
0

좋은 하루.mySQL에 3 개의 테이블 조인

이 질문은 이미 알고 있지만 내 문제를 구현하는 데 어려움이 있습니다.

내가 원하는 3 테이블. 즉, 하나 개의 테이블에 세 개의 테이블 WHERE Order_Complete = 'YES'밖으로 Order_Header_ID, 수량 및 설명를 표시 그래서이 세 개의 테이블을 가입하려는

Order_Header(Order_Header_ID{PK}, Order_Date, Order_Time, Order_Complete) 
Order_Line(Order_Line_ID{PK}, Product_ID{FK}, Order_Header_ID{FK},Quantity) 
Products(Product_ID{PK}, Description, Cost) 

: 내 테이블처럼 보이게하는 방법을 여기에있다. 모든 정보를 표시하지만 조인하지 않는 다음 SQL이 있습니다.

SELECT 
    Order_Header.Order_Header_ID, 
    Products.Description, 
    Order_Line.Quantity 
FROM Order_Header, Products, Order_Line 
WHERE Order_Complete = 'yes' 

아이디어는 해당 설명 및 수량으로 한 번만 Order_Header_ID를 한 번 나열한다는 것입니다.

고맙습니다.

+0

". 나는 모든 정보를 표시하지만 그들과 합류하지 않는 다음과 같은 SQL이"우리는 다음과 같은 쿼리를 작성할 수있는 이러한 것들을 모두 수정 'FROM Order_Header, Products, Order_Line WHERE Order_Complete = 'yes'' 실제로 여기서 암시 적 CROSS JOIN 구문을 사용하고 있습니다. –

+0

* 절대로 * FROM 절에 쉼표를 사용하지 마십시오. * 항상 * 적절한 JOIN 구문을 사용하십시오. –

+0

@GordonLinoff "절대로 FROM 절에 쉼표를 사용하지 마십시오." 'FROM' 절에 넣어서 내부 조인하는 테이블은 의미가 있습니다. 유일한 문제는'WHERE' 절이 적절한 조인 조건을 포함해야한다는 것입니다. –

답변

1

현재 검색어에 가입 조건이 없습니다. 또한 명시 적 조인 구문을 사용하는 것이 좋습니다.

SELECT 
    oh.Order_Header_ID, 
    p.Description, 
    ol.Quantity 
FROM Order_Header oh 
INNER JOIN Order_Line ol 
    ON oh.Order_Header_ID = ol.Order_Header_ID 
INNER JOIN Products p 
    ON ol.Product_ID = p.Product_ID 
WHERE 
    oh.Order_Complete = 'yes' 
+0

감사합니다 !!! 그것은 완벽하게 작동합니다! 대단히 감사합니다!! – FSmith94