У меня есть две таблицы, связанные полем id_factura.
Таблица 'factura' генерирует идентификатор для каждой сделанной продажи, может содержать несколько продуктов таблицы продажи, а также имеет поле с именем num_facturaс номером счета-фактуры.
В таблице «venta» есть продукты со статусом «nuevo» или «usado». В этих двух таблицах уже сделано несколько запросов. В этих таблицах есть и другие поля, такие как дата регистрации ...
Таблица фактур
+---------------+-------------+
| id_factura | num_factura |
+---------------+-------------+
| 1 | 1 |
| 2 | 2 |
| 3 | 1 |
| 4 | 2 |
| 5 | 3 |
+---------------+-------------+
Tabla venta
+---------------+-------------+-------------+
| id_venta | estado | id_factura |
+---------------+-------------+-------------+
| 1 | usado | 1 |
| 2 | usado | 2 |
| 3 | nuevo | 1 |
| 4 | nuevo | 2 |
| 5 | nuevo | 3 |
+---------------+-------------+-------------+
Вопрос, который я хочу задать, заключается в том, чтос указанием статуса таблицы купли-продажи, верните последний номер счета-фактуры, а затем я добавляю 1. к новой записи.
Но проблема, с которой я сталкиваюсь, заключается в том, что при выполнении инструкции estado = 'usado'не влияет на меня, так как я беру наибольший номер счета-фактуры, независимо от условия.
SELECT num_factura
FROM factura f
LEFT JOIN venta v ON v.id_factura = f.id_factura
WHERE estado = 'usado'
GROUP BY num_factura
ORDER BY num_factura DESC LIMIT 1;
Я получаю следующий результат
+---------------+-------------+
| num_factura | id_factura |
+---------------+-------------+
| 3 | 5 |
+---------------+-------------+
Я хочу этот результат, потому что этот результат последний из estado= 'usado'
+---------------+-------------+
| num_factura | id_factura |
+---------------+-------------+
| 2 | 2 |
+---------------+-------------+