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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выбрать из таблицы одинаковые записи 
:(
    Опции темы
bazzjr
Дата 24.5.2010, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

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



Всем привет.

Имею таблицу table и столбцы в ней
id - цифры
ip - цифры

Как мне сделать запрос так, что бы выбирались все одинаковые id и выводились по 4 на страницу.

т.е. имеем в таблице
  id                  ip
  1               10.0.0.1
  1               10.0.0.2
  1               10.0.0.3
  2               10.0.0.1
  2               10.0.0.2
  3               10.0.0.1
  3               10.0.0.2
  4               10.0.0.4

Должно отобразится на странице
  id                     ip
  1               10.0.0.1
                   10.0.0.2
                   10.0.0.3
________________
 
  2               10.0.0.1
                   10.0.0.2
________________

  3               10.0.0.1
                   10.0.0.2
________________

  4               10.0.0.1          


Сейчас проблема в том, что ставя LIMIT 1,4   выбираются только 4 записи из таблицы, а нужно не 4 записи, а 4 разных id и все ip у этого номера id (получается 8 id всего - 3 единицы, 2 двойки, 2 тройки и 1 четверка).
  

Это сообщение отредактировал(а) bazzjr - 24.5.2010, 00:46
PM MAIL ICQ   Вверх
Gluttton
Дата 24.5.2010, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 24
Всего: 54



Как вариант предлагаю реализовать такой запрос связыванием таблицы с подзапросом из неё же самой, который выбирает нужное количество id.

Т.е. что то вроде такого:
Код

select
    s.id,
    table.ip
from table
    inner join
    (
        select id limit 4
        from table
    )   as s
        on table.id=s.id



--------------------
Слава Україні!
PM MAIL   Вверх
bazzjr
Дата 24.5.2010, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

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



Почти то что нужно это SELECT * FROM `table` WHERE `somevar`='0' GROUP BY `id`,`ip` 
но вот тут я не могу использовать LIMIT 1,4.

Ваш вариант не могу запустить в работу, скажите в s это что такое?
PM MAIL ICQ   Вверх
Zloxa
Дата 24.5.2010, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Код

select
    s.id,
    table.ip
from table
    inner join
    (
        select distinct id 
        from table
        order by id limit 1,4
    )   as s
        on table.id=s.id



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Gluttton
Дата 24.5.2010, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 24
Всего: 54



Цитата(bazzjr @  24.5.2010,  01:20 Найти цитируемый пост)
Ваш вариант не могу запустить в работу

Попробуйте вариант от Zloxa.

Цитата(bazzjr @  24.5.2010,  01:20 Найти цитируемый пост)
скажите в s это что такое? 

S - это псевданим (алиас, alias) подзапроса, т.е. имя по которому можно обратиться к подзапросу...
Идея в следующем:
1. Выбираем четыре id из таблицы.
2. Выбираем из таблицы все ip у которые такие id, которые мы выбрали перед этим (в подзапросе).

 smile 
Zloxa, новая "одёжка" smile ?
Прямо не узнать smile ...


--------------------
Слава Україні!
PM MAIL   Вверх
bazzjr
Дата 26.5.2010, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

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



Zloxa,  спасибо помогло.

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


 




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


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

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