Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с запросом...MySQL
 
 автор: Сергей Александрович   (24.07.2006 в 23:26)   письмо автору
 
 

Есть таблица
_____________________________
|Блюдо|Компонент|Количество |
|=====+=========+=============+
|борщ |свинина |300 |
|борщ |картофель|700 |
|борщ |соль |1000 |
|каша |крупа |2223 |
|каша |масло |321 |
|каша |соль |312 |
+-----+---------+-------------+
итп..

как запросом выбрать те блюда ... которые состоят ТОЛЬКО из (к примеру мяса и соли) притом обязательно в количествах <= указанным ..

К примеру у меня в холодильнике осталось:
кусок свиньи 400гр
крупа 300 гр
Соль 45кГ

Так вот надо определить весь списк блюд который я согу из этого сварганить...:)))

   
 
 автор: ЯR   (25.07.2006 в 03:46)   письмо автору
 
   для: Сергей Александрович   (24.07.2006 в 23:26)
 

А может быть лучше разбить эту таблицу на две:
первая
+---+--------+
| id_eat | name |
| 1 | борщ |
| 2 | каша |
+--+--------+

вторая
| id_eat | ingridient | weight |
| 1 | свинина | 300 |
| 1 | картофель | 700 |
| 1 | соль | 1000 |
| 2 | крупа | 2223 |
| 2 | масло | 321 |

   
 
 автор: Сергей Александрович   (25.07.2006 в 15:33)   письмо автору
 
   для: Я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 через массивы и циклы..?

   
 
 автор: Trianon   (25.07.2006 в 19:42)   письмо автору
 
   для: Сергей Александрович   (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

   
 
 автор: Сергей Александрович   (26.07.2006 в 00:00)   письмо автору
 
   для: Trianon   (25.07.2006 в 19:42)
 

Благодарю! обязательно попробую....!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования