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

Форум MySQL

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

 

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

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

тема: Не получается определить максимальное число с помощью MAX
 
 автор: Fix   (05.09.2009 в 02:18)   письмо автору
 
 

Привет!

Вот уже несколько часов бьюсь над запросом.
Есть две связанные таблицы: properties_items_table и properties_item_for_groups_table.
В первой хранятся значение свойств, во второй - принадлежность свойства группе.

Нужно определить максимальное значение у поля shop_properties_items_value в таблице properties_items_table.

Вот запрос:

<?php
$query 
"SELECT MAX(properties_items_table.properties_items_value) AS maxvalue,
properties_item_for_groups_table.groups_id

FROM properties_item_for_groups_table, properties_items_table

WHERE 
properties_item_for_groups_table.groups_id='1289' AND // принадлежность этого свойства группе
properties_items_table.list_of_properties_id='136'  // ID нужного свойства
"
;
?>


Результат выводит число 750. Не понимаю, откуда оно берется, хотя в таблице максимальное значение - 2000. Подозреваю, что я делаю неправильно связку. Чтобы было понятнее, приведу пример БД (пару последних записей; а так-то записей очень много):


properties_items_table
id    items_catalog_item_id    list_of_properties_id     properties_items_value    
2449    1736                            136                            2000               
2447    1735                            136                            1500



properties_item_for_groups_table
id    groups_id     list_of_properties_id
1006    1289            137
1004    1289            136

  Ответить  
 
 автор: Trianon   (05.09.2009 в 09:49)   письмо автору
 
   для: Fix   (05.09.2009 в 02:18)
 

Если какой тип поля в таблиц не числовой - удивляться не стоит.
А он явно не числовой.

  Ответить  
 
 автор: FiX   (05.09.2009 в 11:32)   письмо автору
 
   для: Trianon   (05.09.2009 в 09:49)
 

Да, там хранятся еще и строки.
А как же тогда быть? У свойства с ID 136 хранятся ТОЛЬКО числа, там строк нет. А вот у свойства с ID 135, например, есть строковые значения.

Подскажите, пожалуйста...

  Ответить  
 
 автор: mihdan   (05.09.2009 в 12:04)   письмо автору
 
   для: FiX   (05.09.2009 в 11:32)
 

Менять структуру таблицы

  Ответить  
 
 автор: FiX   (05.09.2009 в 12:19)   письмо автору
 
   для: mihdan   (05.09.2009 в 12:04)
 

К сожалению, поменять её не получится...
А может удастся сделать это с помощью двух-трех запросов?

  Ответить  
 
 автор: Trianon   (05.09.2009 в 12:37)   письмо автору
 
   для: FiX   (05.09.2009 в 12:19)
 

1. Вы можете выполнять приведение типов перед операциями сравнения и сортировки.
Это функции CAST() и CONVERT() .
2. Если диапазон значений хранимых чисел ограничен разумными величинами, Вы можете помещать величины с добавленными лидирующими нулями. Для целых положительных величин можно применить LPAD()

  Ответить  
 
 автор: FiX   (05.09.2009 в 13:16)   письмо автору
 
   для: Trianon   (05.09.2009 в 12:37)
 

Спасибо! Вроде получилось...
вот запрос:

SELECT MAX(CAST(properties_items_table.properties_items_value AS UNSIGNED) ) as maxvalue,
properties_items_table.*, properties_item_for_groups_table.groups_id

FROM properties_item_for_groups_table, properties_items_table

WHERE properties_item_for_groups_table.groups_id='1289' 
AND properties_items_table.list_of_properties_id='136'

  Ответить  
Rambler's Top100
вверх

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