Получить позицию пользователя между друзьями - PullRequest
0 голосов
/ 09 июля 2011

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

У меня есть две таблицы.

Таблица 1: друзья (там, где перечислены все друзья пользователей)

Таблица 2: пользователи (там, где перечислены все пользователи)

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

Так что, если у меня, например, есть ID 1 (с 100 кредитами) и друг с ID 2 (с 21 кредитом), запрос отобразит мою позицию как 1.

Ответы [ 2 ]

2 голосов
/ 09 июля 2011

Вы на самом деле не предоставляете много информации о разметке стола, поэтому я не смогу привести очень конкретный пример.Я также боюсь, что я не совсем понимаю ваш вопрос, но я попробую ...

Во-первых, я предполагаю, что ваша таблица users имеет по крайней мере этистолбцы:

id (PK)
credits

И что у таблицы friends есть следующие столбцы:

user (FK to users.id)
friend (FK to users.id)

Теперь, если я понимаю ваш вопрос, вы хотите оценить всеДрузья пользователя, в зависимости от того, сколько кредитов у них есть, поэтому:

SELECT u.id,u.credits
FROM friends AS f
JOIN users AS us ON f.friend = u.id
WHERE f.user = 1
ORDER BY u.credits DESC;
0 голосов
/ 09 июля 2011

, чтобы получить позицию, я бы порекомендовал использовать для этого PHP, а не пытаться поместить все это в один запрос. Получите отсортированный список, как описано в Flimzy, и определите позицию с помощью функции массива, например array_search.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...