Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

limit для условия

65K
17 декабря 2010 года
webprofusa
1 / / 17.12.2010
Добрый день!

исходные данные:

1) table1 (id,col1,col2)
2) table2 (id,table1_id,col3)
3) данные в таблицах связываются слудующим образом: table1.id=table2.table1_id

Задача:

необходимо выбрать случайно 3 записи из table1, затем выбрать по 4 записи из table2 для каждого из значений выбранных из table1. Если использовать просто LIMIT 4 для второй части запроса, то мы естественно получим только 4 записи, соответствующие первому значению выбранного из table1.... даже незнаю как быть:( все нужно сделать одним запросом.

Буду благодарен за любую помощь в решении задачи.
244
17 декабря 2010 года
UAS
2.0K / / 19.07.2006
 
Код:
SELECT tb2.*
FROM table2 tb2
WHERE tb2.table1_id IN(
    SELECT id FROM table1 ORDER BY RAND() LIMIT 0,3
)
LIMIT 0,4

Не проверял, но что-то типа такого. Пример не обещает быть идеальным и лучшим и приведен навскидку.

Update:
блин, не правильно понял задание, тут не верно привел, вам надо по 4 значения для каждого, а у меня вообще 4 значения только для всех. Но пост оставлю, вдруг кому понадобится. Вам по идее надо смотреть в сторону GROUP BY
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог