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

Форум MySQL

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

 

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

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

тема: Синтаксис в WHERE
 
 автор: oliss   (14.04.2010 в 08:48)   письмо автору
 
 

WHERE c.aaa = 'xx'  
AND   d.sss = 'xx' 

чтоб получить типа
WHERE c.aaa = d.sss= 'xx' 

как то можно?

  Ответить  
 
 автор: Trianon   (14.04.2010 в 09:01)   письмо автору
 
   для: oliss   (14.04.2010 в 08:48)
 

по-моему WHERE c.aaa = d.sss= 'xx' может означать лишь WHERE (c.aaa = d.sss) = 'xx' , а это явно не то, что Вам нужно.
можно написать как у Вас сверху.
можно написать WHERE c.aaa = 'xx' AND c.aaa = d.sss
можно написать WHERE d.sss = 'xx' AND c.aaa = d.sss

PS. Составной индекс не помог? Я волнуюсь! ;-)

  Ответить  
 
 автор: oliss   (15.04.2010 в 18:17)   письмо автору
 
   для: Trianon   (14.04.2010 в 09:01)
 

Ну ,вот дошли руки до глобальных экспериментов..Удовлетворяю любопытство :)))
При использовании составного ключа количество затронутых рядов уменьшилось астрономически,естественно скорость выборки возросла на порядок ,а по некоторым запросам и ещё больше
Исчезло много нуллевых ключей и всяких Using join buffer, Using temporary; Using filesort
да мощная вещь.

Trianon ,а можно ещё вопрос?
есть возможность упаковать данные одной таблицы в другую ,без нарушения логики и нормализации те
соединение трех таблиц
FROM `cat` AS `c`
LEFT JOIN `img` AS `i` ON `i`.`id_cat` = `c`.`id`
JOIN `size` AS `sz` ON `sz`.`id` = `i`.`id_size`

а теперь данные из табл size благополучно переместились в таб cat
JOIN `cat` AS `s` ON `s`.`s_id` =  `c`.`id`
LEFT JOIN `img` AS `i` ON `i`.`id_cat` = `s`.`id`
JOIN `cat` AS `sz` ON `sz`.`id` = `i`.`size`

вот и вопрос ,какое объединение лучше
в пределах одной таблицы или соединение двух таблиц

  Ответить  
 
 автор: Trianon   (15.04.2010 в 18:36)   письмо автору
 
   для: oliss   (15.04.2010 в 18:17)
 

>Ну ,вот дошли руки до глобальных экспериментов..Удовлетворяю любопытство :)))
>При использовании составного ключа количество затронутых рядов уменьшилось астрономически,естественно скорость выборки возросла на порядок ,а по некоторым запросам и ещё больше
>Исчезло много нуллевых ключей и всяких Using join buffer, Using temporary; Using filesort
>да мощная вещь.
>

Ну на поверхности же всё.
Сервер Вас просил как человека - "Ну дай ты мне какой нибудь индекс, по которому сам[а] сможешь определить максимальные id в пределах каждой категории! И я сразу всё посчитаю!"
А по какому индексу в пределах категории можно определить максимальные id?
По кторому порядок сперва по категориям, а внутри - по id'ам.
А что это за индекс тогда? А индекс тогда id_cat, id . Вуаля.

По второму вопросу нужно время подумать. То есть понять.

  Ответить  
 
 автор: Trianon   (15.04.2010 в 18:42)   письмо автору
 
   для: oliss   (15.04.2010 в 18:17)
 

если `id_cat` не тождественно `size` , то нужно, конечно - именно так, третьей таблицей другим алиасом.

Про объединение я не понял.
Надеюсь, Вы слово "объединение" не применяете для операции JOIN ?

  Ответить  
 
 автор: oliss   (15.04.2010 в 19:18)   письмо автору
 
   для: Trianon   (15.04.2010 в 18:42)
 

Да моя безграмотность ,сори ,имелось ввиду именно JOIN
Чуть позже, конкретней приведу пример о чем идёт речь

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

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