
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.12.2013, 07:45:43
|
|||
|---|---|---|---|
|
|||
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Добрый день! Хочу вывести список диалогов между пользователями одним запросом(если возможно такое конечно) Есть таблица сообщений: Код: plaintext Ни как не могу придумать запрос, чтобы вывести все диалоги. Скорее всего вопрос уже ясен, но для наглядности уточню: Таблица: Код: plaintext 1. 2. 3. 4. 5. 6. Авторизован пользователь с uid=1 Вот из такого странного диалога, необходимо выцедить некий DISTINCT по двум полям: Результат: Код: plaintext 1. 2. Т.е. список диалогов(или как в 7-й строчке, без ответа - монологов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 07:47:43
|
|||
|---|---|---|---|
|
|||
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
//Не нашел как редактировать сообщение. Небольшая поправка: Результат: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 08:01:38
|
|||
|---|---|---|---|
|
|||
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Добавлю сложности: Нужно выводить диалоги в хронологическом порядке Возможно на уровне SQL и не решить... Хотя конечно надеюсь, местные гуру подскажут :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 08:22:03
|
|||
|---|---|---|---|
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Pavel KuznetsovРезультат: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 08:42:38
|
|||
|---|---|---|---|
|
|||
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
tanglirPavel KuznetsovРезультат: Код: plaintext 1. 2. Чтобы не выводить диалог с самим собой. Но можно опустить это (проще на PHP будет убрать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 08:48:45
|
|||
|---|---|---|---|
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Pavel KuznetsovЧтобы не выводить диалог с самим собой Pavel Kuznetsov Код: plaintext Pavel Kuznetsov Код: plaintext где тут "диалог с самим собой"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 09:02:04
|
|||
|---|---|---|---|
|
|||
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Pavel KuznetsovАвторизован пользователь с uid=1 На самом деле первая строчка выведена - результата - 2 Задача стоит чтобы вывести все уникальные from_uid и to_uid В данном примере мы не выводим диалог с пользователем uid=1 А вот диалоги остальных пользователей нам нужно вывести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 09:14:51
|
|||
|---|---|---|---|
|
|||
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
авторРезультат: 2, 3, 7, Важно уточнее(каюсь забыл) - это uid (либо from_, либо to_) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 09:37:07
|
|||
|---|---|---|---|
|
|||
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Т.е. вывести список уникальных веток между пользователями. Или по другому "Список контактов" (которые отправляли мне сообщения, либо которым я отправлял) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 09:38:56
|
|||
|---|---|---|---|
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
ну и чё? тривиальнейшая же задачка... Код: sql 1. 2. 3. 4. Pavel KuznetsovВозможно на уровне SQL и не решить... А Вы попробуйте не кидаться словами сразу, а сперва хоть что-нибудь почитать про то, за что хватаетесь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 09:53:40
|
|||
|---|---|---|---|
|
|||
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Akinaну и чё? тривиальнейшая же задачка... Код: sql 1. 2. 3. 4. Немного не понял откуда цифры 1 и 2? Если 1 - это UID авторизованного пользователя, то что означает 2 ? Изначально было следующее решение у меня. И оно отрабатывает на 75% необходимого результата: Код: sql 1. 2. 3. 4. НО! не получается сортировать по дате... AkinaPavel KuznetsovВозможно на уровне SQL и не решить... А Вы попробуйте не кидаться словами сразу, а сперва хоть что-нибудь почитать про то, за что хватаетесь... Я на форумах задаю вопрос очень редко (не чаще раза в год) и только после чтения доков и форумов. Вы же сами в свою очередь не зная меня и как я пытался решить свой вопрос, "бросили" слова о том, что я не читал "про то, за что хватаюсь"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 10:04:00
|
|||
|---|---|---|---|
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Pavel KuznetsovЗадача стоит чтобы вывести все уникальные from_uid и to_uidПочему тогда именно запись №3, а не №1? До сих пор неясно, что же вы хотите получить. Pavel KuznetsovВ данном примере мы не выводим диалог с пользователем uid=1 А вот диалоги остальных пользователей нам нужно вывести.У вас во всех исходных записях пользователь 1 присутствует. Следовательно, результатом запроса, выполняющего задачу "вывести диалоги всех пользователей, кроме первого", на приведённых данных будет пустое множество. А у вас в результате несколько записей есть, да ещё и с первым юзером. Как это понимать?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 10:10:12
|
|||
|---|---|---|---|
|
|||
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Запутал я пользователей разными названиями. Если не смотреть записи после первого сообщения в этом форуме, то вот что нужно: Вывести список уникальных веток между пользователями. Или по другому "Список контактов" (которые отправляли мне сообщения, либо которым я отправлял) Можно в виде хотелки: "Хочу как во ВКонтакте". Т.е. есть список диалогов и соответственно можно выбрать диалог и продолжить его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 12:16:49
|
|||
|---|---|---|---|
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Pavel KuznetsovНемного не понял откуда цифры 1 и 2?Кто-то "в качестве примера" (не будем показывать пальцем) привёл (правда, с ошибкой) пример вывода сообщений для диалога юзеров с ИДами 1 и 2. И теперь удиивляется, что я сделал то же самое? нелогично... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 12:18:10
|
|||
|---|---|---|---|
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Второй вариант - хочешь ты одно, а пишешь совершенно второе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 12:42:10
|
|||
|---|---|---|---|
|
|||
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Всем спасибо! Вопрос закрыл. Вот таким решением: Код: sql 1. 2. 3. 4. Прошу извинить за PGSQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 13:36:10
|
|||
|---|---|---|---|
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
Pavel KuznetsovDISTINCT ON(збс! то есть о том, что у вас постгре и можно пользоваться его синтаксическими плюшками, мы тоже должны были догадаться?.. а по сабжу - нужный список ид сообщений достаётся дубовым юнионом: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2013, 14:02:57
|
|||
|---|---|---|---|
|
|||
DISTINCT на два поля или вывод списка диалогов |
|||
|
#18+
tanglirPavel KuznetsovDISTINCT ON(збс! то есть о том, что у вас постгре и можно пользоваться его синтаксическими плюшками, мы тоже должны были догадаться?.. а по сабжу - нужный список ид сообщений достаётся дубовым юнионом: Код: sql 1. Всё еще хуже)) : Мне это дело нужно было перекинуть в AcitevRecord Yii , по этому решение на MySQL было бы предпочтительнее. А по ответу на сабж - спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1835477]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 186ms |
| total: | 270ms |

| 0 / 0 |
