2012-09-10 2 views
0

2 개의 테이블이 있습니다.MySQL 쿼리 tableA이 테이블의 날짜가 이번 달 tableB에있는 경우

나는 tableA에 대한 질의를하고 tableB에 의한 질의를 만들고 싶습니다.

이것은 회계 시스템입니다.

표 A에는 고객이 있습니다. TableB에는 고객이 지불 한 금액이 들어 있습니다.

TableB 주문에서 TableB 주문에 *를 선택하고 이달의 날짜를 먼저 입력 한 다음 나머지는 지불하지 않으려합니다.

+0

당신의 기능과 표현을 사용할 수 있습니다 당신의 ORDER BY 절에서와 같이 (b.payment = now(), 0, 1) ORDER BY 절. 추가 도움말을 보려면 샘플 데이터와 원하는 결과를 표시하십시오. –

답변

0
SELECT 
    * 
FROM TableA 
LEFT JOIN TableB 
    ON TableB.customer_id = TableA.customer_id 
ORDER BY COALESCE(TableB.payDate, '1900-01-01') DESC 
+0

아마도 OP가 원하는 것이 아닐 것입니다. 과거에 1 회 지불 한 고객에 대해 여러 행을 반환 할 것이기 때문입니다. –

0

할 수 있습니다 외부 이런 TableB의에서 최대 지불 날짜별로 식별 TableA의에서 정보 및 주문에 의해 두 개의 테이블, 그룹에 가입 :

select customer.customer_id, customer.first_name, customer.last_name, 
    max(payment.payment_date) 
from customer 
    left outer join payment on payment.customer_id = customer.customer_id 
group by customer.customer_id, customer.first_name, customer.last_name 
order by max(payment.payment_date) desc 
관련 문제