У меня есть 2 таблицы в базе данных: пользователи и друзья.Я хочу сделать запрос, который ищет имена пользователей, которые не дружат с определенным пользователем, используя @Query.Как должен выглядеть запрос?
Я создал этот запрос для него:
@Query("SELECT u.name FROM Users u WHERE u.user_id NOT IN
(SELECT f.friend_id FROM Friend f WHERE f.user_id= ?1)
AND u.name LIKE %?2% ", nativeQuery = true)
List<String> searchingNonFriendsByUserId(int userId, String search)
Но это не дает нужных результатов, которые я хочу.
Информация/ атрибуты таблиц:
Пользователи (user_id PK, имя, оценка)
Friend (id PK, user_id, friend_id)
ПРИМЕР ДЛЯ УТОЧНЕНИЯ :
ПОЛЬЗОВАТЕЛИ: (1, «тест», 5), (2, «Тим», 10), (5, «Том», 11), (4, «тест2», 13), (6, «Там», 0)
ДРУЗЬЯ: (1, 1, 2), (2, 1, 5), (3, 1, 4), (4, 2, 5), (5, 2, 1)
Я хочу имена (указанные в предложении LIKE) пользователей, не являющихся друзьями "Tim" (user_id = 2)например.Здесь Тим дружит с "Томом" и "тестом".Например, я набираю букву «T» между% предложения LIKE для user_id = 2, тогда я хочу, чтобы запрашивались только «Tam» и «test2».