我在数据库中有2个表:Users和Friend。我想查询使用@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)
但这不能给出我想要的正确结果。
有关表格的信息/属性:
用户(用户ID PK,名称,分数)
朋友(id PK,user_id,friend_id)
澄清示例:
用户: (1,“ test”,5),(2,“ Tim”,10),(5,“ Tom”,11),(4,“ test2”,13),(6,“ Tam”, 0)
好友:(1,1,2),(2,1,5),(3,1,4),(4,2,5),(5,2,1)
例如,我想要不是“ Tim”的朋友(user_id = 2)的用户名称(由LIKE子句指定)。蒂姆在这里是“汤姆”和“测试”的朋友。例如,对于user_id = 2,我在LIKE子句的%之间键入字母“ T”,然后只查询“ Tam”和“ test2”。
答案 0 :(得分:1)
使用“不存在”。
通过排除在给定用户所在的myFunc
表中具有一行的任何用户(user_id =?1)来选择与给定用户ID不是朋友的用户。
Friend
答案 1 :(得分:0)
您可以尝试一下吗?
从不存在的用户u中选择u.name(
从朋友中选择User_id,其中user_id =?1)