2 개의 테이블이 있습니다.MySQL 쿼리 tableA이 테이블의 날짜가 이번 달 tableB에있는 경우
나는 tableA에 대한 질의를하고 tableB에 의한 질의를 만들고 싶습니다.
이것은 회계 시스템입니다.
표 A에는 고객이 있습니다. TableB에는 고객이 지불 한 금액이 들어 있습니다.
TableB 주문에서 TableB 주문에 *를 선택하고 이달의 날짜를 먼저 입력 한 다음 나머지는 지불하지 않으려합니다.
2 개의 테이블이 있습니다.MySQL 쿼리 tableA이 테이블의 날짜가 이번 달 tableB에있는 경우
나는 tableA에 대한 질의를하고 tableB에 의한 질의를 만들고 싶습니다.
이것은 회계 시스템입니다.
표 A에는 고객이 있습니다. TableB에는 고객이 지불 한 금액이 들어 있습니다.
TableB 주문에서 TableB 주문에 *를 선택하고 이달의 날짜를 먼저 입력 한 다음 나머지는 지불하지 않으려합니다.
SELECT
*
FROM TableA
LEFT JOIN TableB
ON TableB.customer_id = TableA.customer_id
ORDER BY COALESCE(TableB.payDate, '1900-01-01') DESC
아마도 OP가 원하는 것이 아닐 것입니다. 과거에 1 회 지불 한 고객에 대해 여러 행을 반환 할 것이기 때문입니다. –
할 수 있습니다 외부 이런 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
당신의 기능과 표현을 사용할 수 있습니다 당신의 ORDER BY 절에서와 같이 (b.payment = now(), 0, 1) ORDER BY 절. 추가 도움말을 보려면 샘플 데이터와 원하는 결과를 표시하십시오. –