Отношения запрашивают PostgresSQL, функциональность следования / отмены с помощью PostgresSQL

#sql #postgresql

#sql #postgresql

Вопрос:

У меня есть две таблицы, таблицы пользователей и отношений. Таблица пользователей содержит следующие столбцы:

 id, name,password,username,email,avatar,followersCount,followingCount,tweetCount.
  

И таблица отношений содержит следующие столбцы:

 id, followingId, followerId
  

Как мне создать SQL-запрос для извлечения пользователя с определенным идентификатором и поиска идентификаторов из отношений, за которыми следит пользователь? Другими словами, найдите людей, за которыми следует пользователь

Я зашел так далеко так долго

 SELECT *
FROM public."Users" JOIN
     public."Relationships"
     ON (public."Users".id = public."Relationships".id) 
  

Комментарии:

1. Примеры данных и желаемые результаты помогут. Есть ли проблема с вашим запросом?

Ответ №1:

Если я правильно понимаю, вы хотите:

 SELECT u.*
FROM public."Relationships" r JOIN
     public."Users" u
     ON u.id = r.followerId
WHERE r.followingId = ?;
  

? является заполнителем параметров для пользователя, о котором вы заботитесь. Это возвращает всех подписчиков этого пользователя.

Ответ №2:

Вы имеете в виду этот запрос

 SELECT public."Users".*
FROM public."Users" 
JOIN public."Relationships"
     ON public."Users".id = public."Relationships".followingId 
     AND public."Relationships".followerId = a user ID
  

Я не совсем понимаю followerId и followingId имею в виду, но вы можете изменить их в запросе, если это не то, что вы хотите.