目前我有sql查询
var sql = 'SELECT * FROM [epicatest].[User] WHERE longitude != 'null' AND latitude != 'null' AND id != '' + userId + ''';
这将返回: id:姓:名字:罗伯特:经度:纬度:电子邮件:
我还有一个名为[epicatest]的表。[User_Sports],里面有字段: id:sport_id
在调用上面的查询之前,我存储了一个数组,其中包含与您(原始用户)相关的体育id列表。
当查询被调用时,我想扩展它,以便它只选择与您共享至少一个共同运动的人(即他们有(id), VALUES (sport_id),您也有
这里有一个我想做的例子,假设origin user的id为1
id, sport_id
1、sport a1, b
1, sport c
2、运动g
3,
3、
4、c
4、运动h
2、运动k
所以如果我运行一个'query',它将只返回id为2和4的用户,因为他们对运动a和c感兴趣,与我(原始用户)相同。这就是我想要实现的,我该如何修改这个:
var sql = 'SELECT * FROM [epicatest].[User] WHERE longitude != 'null' AND latitude != 'null' AND id != '' + userId + ''';
这样做吗?
还记得吗,我有一个包含所有(origin user) sport_ids的数组
谢谢。
好的,所以你正在使用Azure,所以我使用SQL Server语法。此外,我假设表User_Sport有一对列,名为user_id和sport_id。
下面是查询:
SELECT DISTINCT u.* FROM
[epicatest].[User] u
INNER JOIN
[epicatest].[User_Sport] p ON u.id = p.user_id
WHERE
u.longitude != 'null'
AND
u.longitude != 'null'
AND
u.id != @user_id
AND
p.sports_id IN (1, 2, 3) -- this is the list of your sport IDs, comma-seprated