Сенсей
Новичок
Умный поиск... траблы с созданием запроса
Имеются юзеры :
и имеются фотки юзеров :
Делаю поиск по юзерам по различным критериям (город, возраст и т.д)
С этим справлялся пока не дошел до определения есть ли у юзера фотки...
1 -
Обычный поиск - вывожу инфу о юзерах... + надо вывести - есть фотка или нет ...
Фотка лежит в соответственнов таблицу users_photos и у каждой фотки есть user_photo_user_id который сожержит user_id с таблицы users
Пока вышел из положения делая в цикле запрос count(*) на таблицу фоток ....
Но хочется избавиться от этого решения .. ибо если в поиске нашлось 50 юзеров - то база сделала еще 50 доп запросов к базе ...
Как сделать одним запросом? Какую связку использовать? (join, left join) ?
2 -
При поиске юзер отмечает "Искать только юзеров у которых есть фотка"
Тут я вообще без понятия... ибо в таблице юзеров я не храню данные о том есть лифотка у юзера или нет.
Как это реализовать? + в случае когда кроме жтого еще проводится поиск и по другоим полям?
Имеются юзеры :
Код:
CREATE TABLE `users` (
`user_id` int(10) NOT NULL auto_increment,
`user_nick_name` varchar(255) NOT NULL default '',
`user_name` varchar(255) NOT NULL default '',
`user_email` varchar(40) NOT NULL default '',
`user_icq` int(25) unsigned default NULL,
`user_sex` tinyint(3) unsigned NOT NULL default '0',
`user_birth_day` datetime NOT NULL default '0000-00-00 00:00:00',
`user_sity_id` tinyint(255) NOT NULL default '0',
`user_notes` text,
`user_password` varchar(255) NOT NULL default '',
`user_regdate` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_nick_name` (`user_nick_name`)
) TYPE=MyISAM;
и имеются фотки юзеров :
Код:
CREATE TABLE `users_photos` (
`user_photo_id` int(11) unsigned NOT NULL auto_increment,
`user_photo_user_id` int(11) unsigned NOT NULL default '0',
`user_photo_desc` varchar(255) NOT NULL default '',
`user_photo_file` varchar(40) NOT NULL default '',
`user_photo_date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`user_photo_id`),
UNIQUE KEY `user_photo_file` (`user_photo_file`),
KEY `user_photo_user_id` (`user_photo_user_id`)
) TYPE=MyISAM;
Делаю поиск по юзерам по различным критериям (город, возраст и т.д)
С этим справлялся пока не дошел до определения есть ли у юзера фотки...
1 -
Обычный поиск - вывожу инфу о юзерах... + надо вывести - есть фотка или нет ...
Фотка лежит в соответственнов таблицу users_photos и у каждой фотки есть user_photo_user_id который сожержит user_id с таблицы users
Пока вышел из положения делая в цикле запрос count(*) на таблицу фоток ....
Но хочется избавиться от этого решения .. ибо если в поиске нашлось 50 юзеров - то база сделала еще 50 доп запросов к базе ...
Как сделать одним запросом? Какую связку использовать? (join, left join) ?
2 -
При поиске юзер отмечает "Искать только юзеров у которых есть фотка"
Тут я вообще без понятия... ибо в таблице юзеров я не храню данные о том есть лифотка у юзера или нет.
Как это реализовать? + в случае когда кроме жтого еще проводится поиск и по другоим полям?