2013-08-04 2 views
0

안녕하세요 여러분, 세 개의 테이블이 있습니다.일대 다 관계 데이터 가져 오기

  1. 고객 (고객의 목록)
  2. 지불 (고객 지불의 목록)
  3. 주문 (고객의 주문 목록)

고객은 하나 이상의 지불하고 주문을 할 수 있습니다 많은 관계에.

다음 쿼리를 시도했지만 올바른 결과가 표시되지 않습니다.

select a.name, b.job_date as JobDate, c.order_date as OrderDate from Customers a 
inner join Jobs b on a.id = b.customer_id 
inner join Orders c on a.id = c.customer_id 
where a.id = 1; 

고객의 주문 및 작업을 표시하는 것이 필요합니다.

+0

더 자세한 정보가 필요를 . 뭐하고 있니? 너는 무엇을 얻으려고 하는가? – RustyH

+0

고객의 지불 내역 및 업무 세부 사항이 필요합니다. – overflow

+0

질문에 대한 샘플 데이터와 원하는 결과를 바탕으로 질문을 설명해 주시겠습니까? – peterm

답변

0

내부 결합 대신 왼쪽 결합을 시도하십시오. 하위 테이블에는 Customers.id = 1로 지정된 레코드가 없을 수 있습니다. 당신은 모든 주문을 얻고 싶다면

select a.name, b.job_date as JobDate, c.order_date as OrderDate from Customers a 
left join Jobs b on a.id = b.customer_id 
left join Orders c on a.id = c.customer_id 
where a.id = 1; 
+0

변경 내용이 없습니다. 내부 조인과 같은 행 번호 – overflow

+0

그래서 행이 몇 개 있습니까? 그렇다면 당신의 문제는 무엇입니까? –

0

는 다음을 사용할 수 있습니다

당신은 모든 직원의 작업 얻기 위해 유사한 쿼리를 작성 얻을
select a.name, c.order_date as OrderDate from Orders c 
inner join Customers a on a.id = c.customer_id 
where a.id = 1; 

:

select a.name, b.job_date as JobDate from Jobs b 
    inner join Customers a on a.id = b.customer_id 
    where a.id = 1;