Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Помогите решить проблему с LIMIT (lexmor) 20/01/2010 - 09:20:41
      Re: Помогите решить проблему с LIMIT (Eugene) 20/01/2010 - 10:45:26
      Re: Помогите решить проблему с LIMIT (lexmor) 20/01/2010 - 11:06:29
      Re: Помогите решить проблему с LIMIT (bac) 20/01/2010 - 22:49:04
      Re: Помогите решить проблему с LIMIT (bac) 20/01/2010 - 22:58:00
      Re: Помогите решить проблему с LIMIT (lexmor) 21/01/2010 - 00:29:58
      Re: удаленный коннект (Stanislav) 12/04/2010 - 16:29:26
      Re: удаленный коннект (Stanislav) 12/04/2010 - 16:30:38

> Original message text:
> From: lexmor - 20/01/2010 - 09:20:41
> Subject:Помогите решить проблему с LIMIT
> -----------------
> Ребята, есть такая ситуация...
>
> из БД была выборка с разбивкой по 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ом присоединить нужную таблицу с параметрами
> (с виртуальными не работал - если так рациональнее то подскажите что именно нужно использовать)
>
> вопрос в том: как правильно сделать ???
>
> спасибо всем за ранее...
>


From: bac - 20/01/2010 - 22:49:04
Subject:Помогите решить проблему с LIMIT
-----------------
Вот ту написал пример. Наверно это вы имели ввиду

CREATE TABLE dat (
datId INTEGER AUTO_INCREMENT PRIMARY KEY,
txt VARCHAR(20)
);

INSERT INTO dat (txt) VALUES
('запись 1'),
('запись 2 '),
('запись 3 ');

CREATE TABLE par (
parId INTEGER AUTO_INCREMENT PRIMARY KEY,
datId INTEGER,
txt VARCHAR(20)
);

INSERT INTO par (datId,txt) VALUES
(1, 'парам 1') ,
(1, 'парам 2'),
(2, 'парам 1'),
(3, 'парам 1'),
(3, 'парам 2'),
(3, 'парам 3');


SELECT * FROM (
SELECT * FROM dat LIMIT 0,2
) AS s
LEFT JOIN
par
USING (datId);


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
36994



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |