Выборка с разных таблиц.

Flanker

незнайка
Выборка с разных таблиц.

Добрый день.
Ситуация\

Естьт таблица tUser
id, login, password

table tMessage

id, id_from, id_to, message.

проблема
вывести в общак, все сообщения, только место номеров логина вывести сами логины.

Пробывал через один join так с одним логином получилось(id_from), а как выводить кому?

Спасибо.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
робывал через один join так с одним логином получилось(id_from), а как выводить кому?
Если не затруднит, пример, пожалуйста.
А с 2-мя попробовать?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Flanker
Покажите нам, пожалуйста, запрос на выборку.

-~{}~ 03.10.07 23:32:

Или я неясно выражаюсь?

-~{}~ 03.10.07 23:41:

С одним джойном
 

voituk

прозревший
Сделай 2 JOIN-а на таблицу с пользователями.
Чтоб их различать проставь для каждой свой alias:

[sql]SELECT ... FROM tMessage INNER JOIN tUser AS tUserFrom ON tUserFrom.id=id_from ... INNER JOIN tUserTo ON tUserTo=id_to[/sql]
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
voituk
Ну и зачем?
Человек даже не удосужился даже пример написать.
Пришёл на всё готовое.
 

Flanker

незнайка
(Не всегда имею полноценный доступ к интернэту, что б полно ответить)
Добрый вечер.
Извените.

Вот мой вариант переделаный с вашего.
PHP:
SELECT  `messages`.id, `messages`.message,  `us1`.login as l_from, `us2`.login as l_to   FROM `messages`  LEFT JOIN `user` as us1  ON `us1`.id = `messages`.id_from   LEFT JOIN `user` as us2  ON `us2`.id = `messages`.id_to   WHERE `messages`.id>".$last."
Я пытаюсь создать FlashChat.
Может быть подскажите как с таблици выбрать последних 30 записей всё одним запросом.

Мой вариант:
Отсортировать по убыванию инд. номеров сообшениё а потом применить LIMIT 0,30 а во флэше сделать перевёртывание порядка посылки сообщений.

Подскажите как сделать это одним запросов и без всяких лиших ухишрений.
Спасибо.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Flanker
Читать мануал. СРочно.!
Ключевые слова в гугле и без лишних ухищрений:

"Сортировка при выборке MySQL"
 

Flanker

незнайка
Спасибо.
Но у меня немного другая ситуация, или я в чем то не разобрался полностью.

Пример моей таблици.
id message
1 mes1
2 mes2
3 mes3
4 mes4
5 mes5
6 mes6
7 mes7
8 mes8
.....
100 a lot of messages
SELECT * FROM `messages` WHERE id>".$last."
При первом входе $last=0 ->Выберит все записи а пользователю надо только последние 20(в моем примере 4).

Мне необходимо получить и именно в таком порядке.
id message
98 mes98
99 mes99
100 a lot of messages


SELECT * FROM `messages` ORDER BY id DESC LIMIT 3";
то получим,
id messages
100 a lot of messages
99 mes99
98 mes98

А как всё это перевернуть, используя SQL?

Спасибо.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Flanker
по ссылке, что я дал всё написано про сортировку по "убыванию" и "возрастанию".

-~{}~ 07.10.07 23:07:

Идеи относительно того, как выбрать начиная с 98 записи есть?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Flanker

С вложенным запросом
Пишу словами

SELECT * FROM `messages`
WHERE id+3>(здесь запрос на подсчёт количества рядов в этой-же таблице)
ORDER BY id LIMIT 3";
 
Сверху