2012-10-11 2 views
0

나는이 개 MySQL의 테이블이를 나열하는 두 개의 서로 다른 테이블을 조인.는 MySQL은 하나 개의 결과

송장 :
ID INT
날짜 DATETIME
은 INT

CUSTOMER_ID

credit_memo :
ID INT
날짜 DATETIME
은 INT

CUSTOMER_ID

내 마지막 시도 :

(SELECT ID AS invoice_number FROM invoice) 
UNION 
(SELECT ID AS credit_memo_number FROM credit_memo) 
ORDER BY date 

문제는 invoice_number 및 credit_memo_number가 모두 invoice_number 변수에 입력된다는 것입니다. 그래서 결과를 실행할 때 '송장'테이블에서 오는 것처럼 보입니다.

각 특정 행을 가져 오는 테이블을 어떻게 결정할 수 있습니까?

는 앤디

답변

0
여기

당신이 그것을 접근하는 방법입니다 감사합니다.

SELECT i.ID AS invoice_number,c.ID AS credit_memo_number 
FROM invoice i 
JOIN credit_memo c ON c.customer_id = i.customer_id 
ORDER BY i.date ASC 

이 송장 ID와 송장 날짜별로 신용 ID 및 순서를 선택합니다 : 우리가를 통해 가입 할 수 있습니다

두 테이블은 고객 ID가 있습니다.

+0

이것은 그가하는 것처럼 보이지 않습니다. 고객이 특정 날짜와 두 개의 대변 메모 (C와 D를 메모 할 수 있음)에 대해 두 개의 송장 (송장 A와 송장 B를 말하게 할 수 있음)이 있으면 다음과 같이 끝납니다. (Joe, A, C) , (Joe, B, C), (Joe, A, D), (Joe, B, D). 나는 그가 그 모든 반복을 원한다고 생각하지 않는다. 고객 ID가 좋은 조인 열로 보이지 않습니다. –

0
select id, t.table_name from invoice join information_schema.tables t on t.table_name='invoice' 
union 
select id, t.table_name from credit_memo join information_schema.tables t on t.table_name='credit_memo'