Эй MYSQL вопрос здесь:Mysql INNER JOIN и HAVING COUNT
У меня есть 3 таблицы, назовём их пунктов, статьи и order_point, которые выглядят примерно так (в упрощенном виде):
item = |item_id|article_id|,
article = |article_id|article_info|,
order_point=|op_id|article_id|op_amount|
Таблица items содержит физические элементы, которые хранятся (одна строка на физический элемент). В таблице статей содержится информация о каждом типе физического элемента, а в order_point (количество) указано, сколько из каждой статьи должно храниться в магазине в любое время.
Теперь то, что я хотел бы сделать, это получить каждый article_id, в котором хранится меньше предметов, чем order_point_amount.
Так что я хочу что-то вроде этого:
SELECT article_id
FROM item INNER JOIN order_point
ON (item.article_id = order_point.article_id GROUP BY item.article_id
HAVING COUNT(item)<order_point.op_amount)
Приведенный выше код не действует, хотя и это последние минуты рабочего дня так что давайте посмотрим, если кто-то решает эту проблему, прежде чем я завтра!
РЕДАКТИРОВАТЬ: Проблема в запросе, как будто это то, что order_point.op_amount неизвестно в условии наличия.
Вы не 'group by' –
Такая же проблема с группой, вам не требуется в MYSQL, насколько я читал. Во всяком случае, я включу его. – dansv130
, вы должны задать вопрос, используя http://sqlfiddle.com/ с надлежащим вводом и ожидаемым выходом. –