Автор Тема: огромный WHERE  (Прочитано 7046 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
огромный WHERE
« Ответ #15 : 29 Января 2004, 12:30:11 »
Цитировать
Petroffs:
они не взаимоисключающие, потому как не у каждой страны есть город

гы гы гы :-)
радуешь ты меня.
Мощью логического аппарата :-)

А про поиск по фотографиям - это поподробнее, пожалуйста.
Я, к стыду своему, так и не понял принципа.
Это сайт знакомств что ли? Поиск с наличием фотографии? или что? Какая логика? Искать человека с именем, начинающимся на "Вас" и меющего три фотографии? Ну-ну. Если у тебя такие юзеры - тебе можно только посочувствовать.

Оффлайн Petroffs

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 141
  • +0/-0
  • 0
    • Просмотр профиля
    • http://petroffs.com
огромный WHERE
« Ответ #16 : 29 Января 2004, 12:56:56 »
Цитировать
не у каждой страны есть город

это я про то что у меня в БД




SELECT user_id,user_nickname,okrug_name,user_age
FROM user left join okrug on user.user_okrug_id = okrug.okrug_id
WHERE user_country_id=108
AND DATE_ADD(user_age, INTERVAL 15 YEAR) <= CURDATE()
AND DATE_ADD(user_age, INTERVAL 19 YEAR) > CURDATE()
AND user_sex=1
AND (user_foto1=1 OR user_foto2=1 OR user_foto3=1)
AND user_okrug_id=161;
Hello world!

Оффлайн Petroffs

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 141
  • +0/-0
  • 0
    • Просмотр профиля
    • http://petroffs.com
огромный WHERE
« Ответ #17 : 29 Января 2004, 13:07:56 »
И интервалом дат, думаю можно проще обойтись......
А как ......
Hello world!

Оффлайн Petroffs

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 141
  • +0/-0
  • 0
    • Просмотр профиля
    • http://petroffs.com
огромный WHERE
« Ответ #18 : 29 Января 2004, 13:09:51 »
SELECT * FROM tbl_name WHERE date >= \'1997-05-05\';
нашел
Hello world!

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
огромный WHERE
« Ответ #19 : 29 Января 2004, 13:18:03 »
ничего не понял в этом запрое.
при чем тут город?

а тормоза у тебя от джойна без индексов

Оффлайн Petroffs

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 141
  • +0/-0
  • 0
    • Просмотр профиля
    • http://petroffs.com
огромный WHERE
« Ответ #20 : 29 Января 2004, 13:32:27 »
про город:
есть 2 таблицы - country, okrug

CREATE TABLE country 
(
   
country_id smallint(6) DEFAULT \'0\' NOT NULL,
   country_name varchar(60) NOT NULL,
   PRIMARY KEY (country_id)
);


CREATE TABLE okrug (
   okrug_id smallint(6) DEFAULT \'0\' NOT NULL,
   okrug_name varchar(60) NOT NULL,
   okrug_country_id smallint(6) DEFAULT \'0\' NOT NULL,
   PRIMARY KEY (okrug_id)
);

okrug.okrug_country_id = country.country_id

для некоторых стран у меня городов нету, что здесь непонятного?
у меня 234 страны, я с ума сойду для каждой город искать....
основные страны у меня имеют города, а непосредственные - нет.


а без джоина никак...... ибо мне надо показывать город юзера, а
запрос выдает циферку, вот я и заменяю эту циферку городом, при
наличии такового, конечно.
Hello world!

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
огромный WHERE
« Ответ #21 : 29 Января 2004, 19:03:47 »
[off]
Цитировать
Petroffs:
основные страны у меня имеют города, а непосредственные - нет.

"Круто взнуздано" - так и не смог себе этого представить
[/off]
Цитировать
Petroffs:
а без джоина никак......

а тебе никто и не предлагает не использовать JOIN.
Насколько я понял из прочитанного
Цитировать
RomikChef:
тормоза у тебя от джойна без индексов

Ссылку на документацию дать?
У тебя okrug_country_id не проиндексирован - поэтому у тебя и ищется полным перебором, а это и влияет на производительность
AS IS...

Оффлайн Petroffs

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 141
  • +0/-0
  • 0
    • Просмотр профиля
    • http://petroffs.com
огромный WHERE
« Ответ #22 : 29 Января 2004, 20:04:53 »
У меня 234 страны
Hello world!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28