В MYSQL, скажем, у меня есть следующие две таблицы.
"заказы":
id | name | customer_id | type | id_fabric
--------------------------------------------------------
1 | "P1601" | 0 | 1 | 1
2 | "M6451" | 0 | 2 | 2
3 | "T8200" | 8 | 1 | 1
4 | "R7441" | 0 | 2 | 2
5 | "S8018" | 2 | 1 | 3
6 | "P1240" | 7 | 1 | 3
"ткани":
id | color | remaining
----------------------------
1 | black | 3.40
2 | red | 16
3 | navy | 12
Я хотел бысоздайте запрос, чтобы получить только ткани, у которых осталось больше 5, у которых нет заказов с customer_id = 0
и тип заказа не равен 2
Так что в этом случае результат будет:
id | color | remaining
------------------------------------------------
3 | navy | 12
Я пытался добиться этого, используя следующий запрос Sql, но он не дает ожидаемого результата:
SELECT
color,
remaining
FROM
fabrics
LEFT JOIN orders ON id_fabric = id
WHERE
remaining > 2 AND id IN(
SELECT
id_fabric
FROM
orders
WHERE
type != 2 AND customer_id != 0
)
GROUP BY
id
Есть идеи?