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

Форум MySQL

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

 

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

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

тема: SQL запрос для создания первичных ключей
 
 автор: fsol   (04.10.2009 в 16:22)   письмо автору
 
 

Здравствуйте !
Чтобы исчезла ошибка в (система powerCounter 40)

The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
SELECT city_name, region_name
FROM powercounter_ip_compact, powercounter_cities, powercounter_regions
WHERE INET_ATON('78.138.171.140') BETWEEN init_ip AND end_ip AND
powercounter_cities.city_id = powercounter_ip_compact.city_id AND
powercounter_cities.region_id = powercounter_regions.region_id

Ошибка в файле /home/site/domains/site.ru/public_html/powercounter40/dmn/system_powercounter/addresses.php в строке 124.

нужно сделать запрос

EXPLAIN SELECT city_name,region_name
FROM powercounter_ip_compact,powercounter_cities,powercounter_regions
WHERE INET_ATON('77.35.28.50')
BETWEEN init_ip
AND end_ip
AND powercounter_cities.city_id=powercounter_ip_compact.city_id
AND powercounter_cities.region_id=powercounter_regions.region_id


его надо делать ко всем таблицам где содержится названия ip (ip,ip_monht, ip_week)
или к какой то одной или просто , не выделять никакую таблицу и делать запрос к базе данных ?

  Ответить  
 
 автор: Trianon   (04.10.2009 в 17:09)   письмо автору
 
   для: fsol   (04.10.2009 в 16:22)
 

запрос EXPLAIN сам по себе ничего с таблицей сделать не сможет.
Он может лишь показать узкие места изучаемого SELECT-запроса.

А первичные ключи нужно имеет смысл поставить на поля powercounter_cities.city_id и powercounter_regions.region_id.
Делается это обычным образом через ALTER TABLE ... ADD PRIMARY KEY ... (либо там через phpMyAdmin или любой другой администрирующий клиент)

  Ответить  
 
 автор: fsol   (04.10.2009 в 23:31)   письмо автору
 
   для: Trianon   (04.10.2009 в 17:09)
 

Если я правильно понял нужно сделать такой запрос:

ALTER TABLE ИМЯ ТАБЛИЦЫ ADD PRIMARY KEY powercounter_cities.city_id , powercounter_regions.region_id;
Для какой таблицы ?

  Ответить  
 
 автор: Trianon   (04.10.2009 в 23:47)   письмо автору
 
   для: fsol   (04.10.2009 в 23:31)
 

нет. не такой.

Как Вы полагаете, здесь (powercounter_cities.city_id , powercounter_regions.region_id) есть имена таблиц?
А теперь перечитайте мои реплики.

  Ответить  
 
 автор: fsol   (04.10.2009 в 23:55)   письмо автору
 
   для: fsol   (04.10.2009 в 23:31)
 

ALTER TABLE powercounter_cities ADD PRIMARY KEY city_id ;
ALTER TABLE powercounter_regions ADD PRIMARY KEY region_id;
Такой что ли ? Вместе одним запросом как будет ?

  Ответить  
 
 автор: Trianon   (05.10.2009 в 00:17)   письмо автору
 
   для: fsol   (04.10.2009 в 23:55)
 

Близко.
Зачем одним запросом?

  Ответить  
 
 автор: fsol   (04.10.2009 в 23:55)   письмо автору
 
   для: fsol   (04.10.2009 в 23:31)
 

Да ошибки исчезли . Ip определяет . Но регион и город нет .

  Ответить  
 
 автор: Trianon   (05.10.2009 в 00:18)   письмо автору
 
   для: fsol   (04.10.2009 в 23:55)
 

Попробуйте.

  Ответить  
 
 автор: fsol   (05.10.2009 в 00:27)   письмо автору
 
   для: Trianon   (05.10.2009 в 00:18)
 

Ошибки исчесзли . Ip определяет . Но регион и город нет .

  Ответить  
 
 автор: Trianon   (05.10.2009 в 00:43)   письмо автору
 
   для: fsol   (05.10.2009 в 00:27)
 

Это уже другая тема.

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

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