2010-11-24 5 views
0

Я делаю запрос в базе данных mysql. У меня есть главная таблица, где хранятся пользователи, и другая таблица, в которой хранятся друзья этого пользователя. Для каждого пользователя я хочу посмотреть, сколько у них друзей. Это то, что я получаю.Sql Distinct Count of Duplicates

ID FirstName LastName FriendID 
1  Andrew Smith  1 
1  Andrew Smith  5 
1  Andrew Smith  9 
2  John  Doe  3 
2  John  Doe  5 

Это то, что я хочу получить.

ID FirstName LastName Friends 
1  Andrew Smith  3 
2  John  Doe  2 

Если этого недостаточно, сообщите мне, и я также покажу таблицы и запрос, которые я использовал.

+2

Правильно ли, что Джон Доу (ID 2) дважды сопоставляется с тем же FriendID (3) и считается 2 друзьями? – 2010-11-24 22:25:14

+0

О, ты прав, обновлен. Я пытался сделать счет без использования группы по предложению – andrew 2010-11-25 17:43:10

ответ

4
SELECT ID, FirstName, LastName, COUNT(FriendID) AS Friends 
    FROM Users GROUP BY ID, FirstName, LastName 

Одна надежда, что вы не действительно хранения ПгвЬЫате и LastName в каждой записи UserFriendLink. Если это так, пришло время нормализовать вашу базу данных с помощью таблицы Users (с идентификатором, первым и последним) и таблицы UserFriendsLink (с UserID и FriendID).