Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложный запрос из 2-х баз 
V
    Опции темы
Gold Dragon
Дата 23.1.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



существует две таблицы

таблица описания
Код

CREATE TABLE `main` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(200) NOT NULL default 'неизвестно',
  `city` varchar(30) NOT NULL default 'Тамбов',
  `area` varchar(30) NOT NULL default 'неизвестно',
  `street` varchar(200) NOT NULL default 'неизвестно',
  `dom` varchar(6) NOT NULL default '0',
  PRIMARY KEY  (`id`)
)

таблица комментариев
Код

CREATE TABLE `comment` (
  `id` int(11) NOT NULL auto_increment,
  `index` tinyint(1) NOT NULL default '1',
  `id_kabak` int(11) NOT NULL default '0',
  `user_data` datetime NOT NULL default '0000-00-00 00:00:00',
  `user_com` text NOT NULL,
  `user_nik` varchar(30) NOT NULL default 'Кто-то',
  `user_mail` varchar(150) default NULL,
  `user_ip` varchar(15) NOT NULL default '0.0.0.0',
  `bal` tinyint(4) NOT NULL default '5',
  `adm_data` datetime default NULL,
  `adm_com` text,
  `adm_nik` varchar(30) default NULL,
  `adm_ip` varchar(15) default '0.0.0.0',
  PRIMARY KEY  (`id`)
)


необходимо вытащить n-ое количество последних записей из comment с полями
- main.id
- main.name
- main.street
- comment.user_data


условия
- main.id связан с comment.id_kabak
- запись в main считается уникальной по main.name+main.street
- последние записи определяются не по дате, а по воздастающему comment.id

когда мне нужна была только одна последняя запись я делал так
Код

SELECT main.id
FROM main, comment
WHERE main.id = comment.id_kabak AND comment.index=1
ORDER BY comment.id DESC
LIMIT 1


Затем по main.id другим запросом получал оставшуюся информацию.
Но такими запросами не получается вытащить несколько записей. Да и хочется запрос один сделать

Добавлено @ 15:06 
comment.index=1 - это дополнительное условие выботки, внимание не обращайте

Это сообщение отредактировал(а) Gold Dragon - 23.1.2007, 15:05


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Dremlin
Дата 23.1.2007, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Quo vadis?
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 21.9.2006
Где: Киев

Репутация: нет
Всего: 4



Ээээ...
Код

SELECT main.id, main.name, main.street, comment.user_data
FROM main JOIN comment ON main.id = comment.id_kabak
WHERE comment.index=1
ORDER BY comment.id DESC
LIMIT N

Оно?
--------------------
Каждый дурак знает, что до звезд не достать, а умные, не обращая внимания на дураков, пытаются...
PM MAIL   Вверх
skyboy
Дата 23.1.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Dremlin, по всей видимости, ему надо ограничить N строками для каждой записи из main. 
Что-то ничего кроме подзапросов в голову не лезет...
PM MAIL   Вверх
Dremlin
Дата 23.1.2007, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Quo vadis?
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 21.9.2006
Где: Киев

Репутация: нет
Всего: 4



skyboy, да? Хм... Подождем автора сабжа. Пусть приведет пример необходимого набора выходных данных  smile 
--------------------
Каждый дурак знает, что до звезд не достать, а умные, не обращая внимания на дураков, пытаются...
PM MAIL   Вверх
Gold Dragon
Дата 24.1.2007, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



Народ, прошу прощения, я просто ошибся уже в PHP и у меня выдавалась постоянно одно и то же значение N раз

Dremlin, я делал именно так как ты написал. Я не стал приводить этот код, думая что он ошибочный.


PS
ещё раз убездаюсь что нужно сначала запросы проверять хотя бы в phpMyAdmin


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.