我在MySql中有3個左連接表。使用條件WHERE子句選擇表的字段
contratos
,其中存儲客戶數據
funcionario
,存儲僱員數據
cobranca
,存儲每個客戶收費。
我想根據收費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
過濾器。如果我放入一個WHERE子句,如cob.status = 'x'
,它將返回此status
的最後一條記錄,但它可能不是當前的。那麼如何檢查cob.status
是否是WHERE子句中的當前status
來決定是否將它放入列表中?喜歡的東西:
WHERE IF(cob.status == the last status inserted AND cob.status == 'x')
你能明白我想幹什麼?謝謝。
你如何決定其當前的狀態是什麼? – VMai
我在第一個查詢中使用** ORDER BY DESC **和** LIMIT 1 **。但我不知道如何在Where子句中做到這一點。我有一個**創建的**字段,存儲日期和小時。 – cbaracat
那麼你的問題在哪裏,如果它有效? – VMai