![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
![]()
Здрасте.. Вот и я к вам за советом пришёл.
![]() Вобщем, есть запрос из MySQL по выборке объекта с его фотографией. Так как фотографий может быть несколько на объект и у каждой своё название и описание, а также фотографии могут меняться по ходу жизни проекта, то названия файлов для фотографий каждого объекта вынесены в отдельную таблицу. Соответственно создал запрос вида: PHP код:
PHP код:
Вобщем проблема в том, что не у всех объектов есть фотография. Если у рандомного объекта нет фотографии, то данный запрос возвращает пустой результат. Теперь внимание, вопрос: "Возможно ли изменить данный запрос так, чтобы выбирался только объект имеющий хотя бы одну фотографию, без добавления нового поля в таблицу объектов? Если возможно, то как?" Заранее всем спасибо.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
А почему бы не перевернуть задачу - выбирать не случайный объект, а случайную фотографию и её объект?... Если "LIMIT 1", тем более...
|
![]() |
![]() |
![]() |
#3 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
![]()
Тогда чаще будут выбираться объекты с бОльшим количеством фотографий. А это не есть гут.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Что-то как я голову ни ломал, ничего туда кроме процедур, вспомогательной таблицы или order by rand() не пришло...
![]() ---------------------- Ещё, как вариант, можно попробовать сделать select ...... order by rand() по результату (select distinct owner from j_photoes), но боюсь это будет ещё медленнее... Последний раз редактировалось B_N; 12.04.2008 в 20:10. |
![]() |
![]() |
![]() |
#5 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
![]()
Любое использование order by rand() в таблице, где более 10000 записей конкретно тормозит выполнение скрипта.
У меня намечается более 10000 объектов, плюс 0-20 фотографий для каждого объекта. Соответственно использовать order by rand() невозможно. Я думаю, что я добавлю просто счётчик фотографий в таблицу объекта. По-другому не могу найти. И выбирать буду только объект у которого более 0 фотографий.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
![]() |
![]() |
![]() |
#6 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() Цитата:
![]() А как Вы их будете выбирать случайным образом? Всё равно если (SELECT CEIL(RAND()....), то придется сформировать список, а если order by rand(), то то же самое.... |
|
![]() |
![]() |
![]() |
#7 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
![]()
Так, хорошо... Вот здесь я потерялся...
В какой момент срабатывает условие "WHERE `active` = 1" ? Разве я не смогу добавить к нему "AND photoes > 0"? Завтра утром зароюсь в мануал по этому поводу.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите, пожалуйста, с выборкой | Chel | БД в Delphi | 24 | 05.06.2008 05:00 |
MySQL нужна библ. для Visual C++ (MySql++) | Alexoid | Visual C++ | 8 | 07.05.2008 18:29 |
Оптимизировать код | NeiL | Помощь студентам | 2 | 21.02.2008 08:57 |
запрос в MySQL, Error | Teksa | БД в Delphi | 4 | 12.10.2007 22:03 |
Через запрос перенести данные с 6 таблиц | Таня84 | БД в Delphi | 5 | 22.03.2007 15:46 |