Я хочу получить общее количество друзей на одном QUERY SQL
У меня есть таблица с именем MEMBERS
, и эта таблица имеет CALL_FRIEND_ID
,
CALL_FRIEND_ID
- это случайный идентификатор, который вы передаете его своему другу, и если он/она регистрируется, он станет вашим другом, добавив ваш столбец с именем FRIEND_ID
(в той же таблице)
Теперь, чтобы узнать общего друга каждого из них, я делаю два запроса
SELECT * FROM MEMBERS;
второй
SELECT COUNT(*) FROM MEMBERS WHERE FRIEND_ID = :id
но это делает ответ медленно
Я пытаюсь использовать HAVING
но без каких-либо результатов, любое решение?
Как вы сказали, когда зарегистрирован член, тогда ему присваивается случайное число, которое имеет CALL_FRIEND_ID, и вы хотите, чтобы общее количество друзей в вашей таблице-члене соответствовало групповому мужу из файла FRIEND_ID, поэтому необходимо, чтобы предложение where, если оно применимо, если вы обнаружите какой-либо конкретный идентификатор FRIEND_ID, поэтому вы можете использовать нижеприведенный запрос
select FRIEND_ID,count(CALL_FRIEND_ID) as totalFriends from MEMBERS
group by FRIEND_ID
Попробуйте этот запрос: из вашего сценария, я думаю, это даст вам желаемый результат
select FRIEND_ID,count(CALL_FRIEND_ID) as totalFriends from MEMBERS
where FRIEND_ID = :id
group by FRIEND_ID
MEMBERS
? Не могли бы вы предоставить пример данных? У вас есть индекс в столбцеFRIEND
? Это может быть то, что вам нужно ...FNAME,LNAME, EMAIL,PASSWORD
Members
меня естьFNAME,LNAME, EMAIL,PASSWORD
иFRIEND
, а также идентификаторCALL_FRIEND_ID
человека, который сообщает ему URL