SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.01.2010 09:06:32

lexmor
Участник
Зарегистрирован: 20.01.2010
Сообщений: 2

Подскажите, как правильно реализовать...

Ребята, есть такая ситуация...

из БД была выборка с разбивкой по 10 объектов на страницу (условно: LIMITом по 10 записей)
возникла необходимость к каждой записи добавить N-ое кол-во параметров из другой таблицы (LEFT JOINом присоединяется еще одна таблица)

Структурно (условно) примерно так:

было
запись 1
запись 2
запись 3
и т.д.

стало
запись 1   парам 1
запись 1   парам 2
запись 2   парам 1
запись 3   парам 1
запись 3   парам 2
запись 3   парам 3
и т.д.

но мне по прежнему надо выводить каждую запись отдельно как объект (т.е. на экран по 10 объектов выводятся с дополнительными параметрами). Я теперь не могу LIMITом кроить суммарный запрос по 10, т.к. строк в результате получается неизвестное за ранее мне число

в голове два пути решения

1. сделать запрос как и был сначала без параметров с LIMIT по 10, а потом по каждой записи отдельный запрос чтобы подтянуть нужные параметры (думаю это нерационально)

2. сделать первый запрос в виде какой то виртуальной таблицы применив к ней LIMIT, а потом к виртуальной таблице LEFT JOINом присоединить нужную таблицу с параметрами
(с виртуальными не работал - если так рациональнее то подскажите что именно нужно использовать)

вопрос в том: как правильно сделать ???

спасибо всем за ранее...

Отредактированно lexmor (20.01.2010 09:11:02)

Неактивен

 

#2 20.01.2010 13:09:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Подскажите, как правильно реализовать...

Проще всего через подзапрос, наверное:

SELECT …
FROM (SELECT … FROM table1 LIMIT 10) t1
JOIN table2 t2 ON …

Неактивен

 

#3 21.01.2010 00:21:04

lexmor
Участник
Зарегистрирован: 20.01.2010
Сообщений: 2

Re: Подскажите, как правильно реализовать...

Спасибо, реализовал - получилось....

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson