
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
26.08.2013, 22:30:02
|
|||
|---|---|---|---|
|
|||
Уникальность по двум полям |
|||
|
#18+
Доброе время суток. Подскажите пожалуйста советом. Имеется таблица tbl_cross_message это личные сообщения и таблица tbl_users. В таблице tbl_cross_message имеются колонки id_user_from и id_user_to это отправитель и получатель. Мне необходимо выводить на страницу уникальных пользователей с этих колонок. Типа как в контакте организованы диалоги. Вот такая архитектура. Запрос я создал, на первый взгляд работает, но смущает его оптимальность. Посмотрите пожалуйста Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.08.2013, 22:39:19
|
|||
|---|---|---|---|
Уникальность по двум полям |
|||
|
#18+
Сразу - коли UNION, то DISTINCT-ы можешь смело убирать. Далее - а что если Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ? Ну и Код: sql 1. замени на реальн нужный список полей... кстати, если он невелик, то можно вообще уложиться в индекс и не трогать таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2013, 19:57:24
|
|||
|---|---|---|---|
|
|||
Уникальность по двум полям |
|||
|
#18+
AkinaСразу - коли UNION, то DISTINCT-ы можешь смело убирать. Далее - а что если Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ? Спасибо, а чем лучше ваш запрос? В чем выигрыш? Насчет звездочки в SELECT, я специально для форума поставил, чтоб не нагружать бесполезными данными. А так я всегда прописываю необходимые колонки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2013, 21:09:14
|
|||
|---|---|---|---|
|
|||
Уникальность по двум полям |
|||
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Получился вот такой запрос, подскажите пожалуйста, а если мне нужно еще подключить id_message это сообщение из таблицы tbl_cross_message к каждому уникальному пользователю. т.е. вывести последнее сообщение к каждому диалогу. Чет не могу придумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2013, 21:52:46
|
|||
|---|---|---|---|
Уникальность по двум полям |
|||
|
#18+
ldarа чем лучше ваш запрос? В чем выигрыш? Ну, например, тем, что может использовать индекс... в отличие от Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2013, 21:54:45
|
|||
|---|---|---|---|
Уникальность по двум полям |
|||
|
#18+
ldarа если мне нужно еще подключить id_message это сообщение из таблицы tbl_cross_message к каждому уникальному пользователю. т.е. вывести последнее сообщение к каждому диалогу.Тогда выделяй именно диалоги (пара ИДов), а далее - в ФАК по выбору первого/последнего в группе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2013, 20:41:14
|
|||
|---|---|---|---|
|
|||
Уникальность по двум полям |
|||
|
#18+
Akina, Посмотрите пожалуйста профессиональным взглядом на мой получившийся запрос, чет сомнения у меня в оптимальности Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2013, 21:42:31
|
|||
|---|---|---|---|
Уникальность по двум полям |
|||
|
#18+
http://dev.mysql.com/doc/refman/5.5/en/explain.html http://dev.mysql.com/doc/refman/5.5/en/explain-output.html http://dev.mysql.com/doc/refman/5.5/en/explain-extended.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2013, 21:50:38
|
|||
|---|---|---|---|
|
|||
Уникальность по двум полям |
|||
|
#18+
Akina, спасибо. Я не правильно выразился, имел ввиду логически или синтаксически правильно составил запрос? Еще раз извиняюсь за глупые вопросы, просто на пороге познания mysql и много неуверенности в своих действиях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1836163]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 334ms |

| 0 / 0 |
