2013-08-05 5 views
0

모든 행을 표시하는 가입 : 나는 테이블 주문에서 모든 행을 표시 할MySQL은 내가 다음과 같은 구조의 두 MySQL의 테이블이

TABLE `orders` 

order_id 
order_date 
product_id 

TABLE `products` 

product_id 
product_name 
product_price 
product_type 

및 표 제품에서 PRODUCT_ID이있는 경우 해당 제품의 모든 데이터를 표시 . 표시되지 않으면 주문 테이블에서만 모든 데이터를 표시하십시오.

나는이 시도 :

SELECT * FROM orders AS o RIGHT JOIN products AS p ON o.product_id=p.product_id 

을하지만 우리는 제품 테이블에 존재하지 않는 주문 테이블 내부 PRODUCT_ID있는 행이있는 경우, 다음 순서에서 행 하였다되지 않습니다. 주문 ID의 행을 제품 테이블 내부에 product_id가 있는지 상관없이 표시하고 싶습니다. 테이블에 주문한 데이터 만 표시하는 경우 JOIN이 있으면 표시됩니다.

제안 사항? 당신은 왼쪽과 LEFT JOIN

을 일을해야

+0

를 사용하여 테스트 대신 오른쪽의 LEFT : – Vatev

답변

2

ORDERS에서 모든 행이 반환됩니다 가입 할 수 있습니다. join에 대한 기준이 충족되지 않을 경우 products 테이블의 열은 null 될 것입니다.

SELECT o.*,p.* 
FROM  orders AS o 
LEFT JOIN products AS p 
     ON o.product_id=p.product_id` 

MySQL manual join syntax

+0

와 작품을 참조하십시오! 감사! – NVG

관련 문제