|
|
|
| Есть таблица
_____________________________
|Блюдо|Компонент|Количество |
|=====+=========+=============+
|борщ |свинина |300 |
|борщ |картофель|700 |
|борщ |соль |1000 |
|каша |крупа |2223 |
|каша |масло |321 |
|каша |соль |312 |
+-----+---------+-------------+
итп..
как запросом выбрать те блюда ... которые состоят ТОЛЬКО из (к примеру мяса и соли) притом обязательно в количествах <= указанным ..
К примеру у меня в холодильнике осталось:
кусок свиньи 400гр
крупа 300 гр
Соль 45кГ
Так вот надо определить весь списк блюд который я согу из этого сварганить...:))) | |
|
|
|
|
|
|
|
для: Сергей Александрович
(24.07.2006 в 23:26)
| | А может быть лучше разбить эту таблицу на две:
первая
+---+--------+
| id_eat | name |
| 1 | борщ |
| 2 | каша |
+--+--------+
вторая
| id_eat | ingridient | weight |
| 1 | свинина | 300 |
| 1 | картофель | 700 |
| 1 | соль | 1000 |
| 2 | крупа | 2223 |
| 2 | масло | 321 | | |
|
|
|
|
|
|
|
для: ЯR
(25.07.2006 в 03:46)
| | На практике эта таблица разбита на 3 в соответствии с нормальными формами в что то типа...
eat_desc
+---+-----------+
| id_eat | name |
+--------+------+
| 1 | борщ |
| 2 | каша |
+--------+------+
ingridient_desc
+--------------+------+
| id_ingridient| name |
+--------------+------+
| 5 | крупа|
| 6 | масло|
| 7 | мясо |
+--------------+------+
main_eat
| id_eat|id_ingridient|weight|
+-------+-------------+------+
| 1 | 5 | 300 |
| 1 | 6 | 700 |
| 1 | 7 | 1000 |
| 2 | 8 | 2223 |
+-------+-------------+------+
но суть как я понимаю остается прежней (поиск по main_eat)
"КАК НАЙТИ ТЕ ЗНАЧЕНИЯ ДЛЯ ДАННОГО id_eat в которых есть (с учетом weight) только id_ingridient= 5, 6 или 8, а других ингредиентов нет" ??????
Неужели тут ни кто мне не может помочь... и придется искать средствами php через массивы и циклы..? | |
|
|
|
|
|
|
|
для: Сергей Александрович
(25.07.2006 в 15:33)
| |
SELECT kit_eat.eat_id, kit_eat.eat_name, min(kit.ingr.amount/kit_main.need)
FROM kit_main
JOIN kit_eat ON kit_main.eat_id = kit_eat.eat_id
JOIN kit_ingr ON kit_main.ingr_id = kit_ingr.ingr_id
GROUP BY kit_eat.eat_id, kit_eat.eat_name
HAVING min(kit.ingr.amount/kit_main.need) >= 1
|
| |
|
|
|
|
|
|
|
для: Trianon
(25.07.2006 в 19:42)
| | Благодарю! обязательно попробую....! | |
|
|
|