MySql에서 조인 된 테이블이 3 개 있습니다. 직원 데이터 모든 고객 전하를 저장 조건부 WHERE 절이있는 테이블의 필드를 선택하십시오.
cobranca
funcionario
를 저장
contratos
.
요금 status
을 기반으로 보고서를 생성하고 싶습니다. 그러나 각 고객 요금은 많은 status
이며, 현재 status
을 검색하고 싶습니다.
다음 코드는 cobrancas
테이블에서 마지막 업데이트를 반환합니다.
SELECT cob.status, cob.created, con.data_venda, cpn.contrato, con.razao_social, con.cnpj, con.valor, f.nick
FROM cobrancas cob
LEFT JOIN contratos con
ON c.id = cob.contrato
LEFT JOIN funcionarios f
ON f.id = cob.cobrador
WHERE 1=1
ORDER BY cob.created DESC
LIMIT 1
그러나 status
필터없이 반환됩니다. cob.status = 'x'
같은 WHERE 절을 넣으면이 status
함께 마지막 레코드를 반환하지만 현재 수 없습니다. 그렇다면 WHERE 절에 cob.status
이 현재 status
인지 확인하여 목록에 넣을 지 여부를 결정할 수 있습니까? 같은 뭔가 :
WHERE IF(cob.status == the last status inserted AND cob.status == 'x')
당신은 내가 원하는 것을 이해 할 수 있습니까? 고맙습니다.
이 어떻게 현재의 상태가 어떤 결정합니까 사용 하는가? – VMai
첫 번째 쿼리에서 ** ORDER BY DESC ** 및 ** LIMIT 1 **을 사용합니다. 그러나 Where 절에서이 작업을 수행하는 방법을 모르겠습니다. 나는 날짜와 시간을 저장하는 ** 생성 된 ** 필드를 가지고있다. – cbaracat
그리고 문제가 어디 있니? – VMai