Задача: Нормализация таблиц

Печать RSS
209

Автор
Чатланин
0
Есть таблица effir:

| id(PK,auto) | id юзера | запись |
и

friends:

| id(PK,auto) | id юзера 1 | id юзера 2 |

В таблицу effir записываются последние действия всех юзеров.
Как выбрать всех друзей, напимер юзера id=1, из таблицы friends и посмотреть их последние записи в effir?

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

Добавлено через 03:31 сек.
Пока нашел решения только как выводить действия друзей по очереди.

Например:

Вася добавляет комментарий.
Вася пишет сообщение.
Петя пишет сообщение.
Петя добавляет комментарий.

А надо так:

Вася добавляет комментарий.
Петя пишет сообщение.
Петя пишет сообщение.
Вася добавляет комментарий.

Т.е. записи отсортированные по id.

Задачу нужно решить не добавляя новых полей и не создавая новых таблиц для связи.

Добавлено через 04:35 сек.
Я чуть изменил названия и суть (чтобы вам было понятнее), но задача от этого не меняется.
Изменил: CROWS (28.02.2011 / 07:42)
Автор
Чатланин
0
Ноль?)

Дедушка
0
через джоин сейчас не соображу как завернуть, а так выбирай сначала друзей в массив, а потом в запросе через in записи
Автор
Чатланин
0
3. Basters, а хотя бы минимальный пример можно?
N

Эцилопп сией тентуры
0
deleted
Изменил: Nu3oN (06.03.2011 / 10:15)
В

Чатланин
0
SELECT effir.*,users.name 
FROM effir,users,friends
WHERE 
((friends.user1='$id' AND effir.user=friends.user2 AND users.id=friends.user2) OR
(friends.user2='$id' AND effir.user=friends.user1 AND users.id=friends.user1))
ORDER BY effir.id;
N

Эцилопп сией тентуры
0
6. valerik, Зачем столько гемороя?
SELECT e.`text`, u.`name`  
FROM `events` e, `users` u, `friends` f 
WHERE u.`id` = {$id} 
AND f.`user_one` = u.`id`
AND e.`user_id` = f.`user_two` 
ORDER BY e.`id` ASC;
З.ы пока писал блог, ты опередил)))
Изменил: Nu3oN (06.03.2011 / 11:33)
Автор
Чатланин
0
Спасибо.
В

Чатланин
0
Nu3oN (6 Марта 2011 / 16:27)
6. valerik, Зачем столько гемороя?
SELECT e.`text`, u.`name`  
FROM `events` e, `users` u, `friends` f 
WHERE u.`id` = {$id} 
AND f.`user_one` = u.`id`
AND e.`user_id` = f.`user_two` 
ORDER BY e.`id` ASC;
З.ы пока писал блог, ты опередил)))
Дык нужный нам юзер в друзьях может быть как в столбце user1 так и в user2
Автор
Чатланин
0
Да, именно так.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск