【发布时间】:2019-12-03 20:18:24
【问题描述】:
我需要一个 SQL 查询/程序来根据给定访问者的性别、最匹配的兴趣和学术领域找到最匹配的主机。我有以下表格:
HOSTS:
HOST_ID GENDER INTEREST_ONE_ID INTEREST_TWO_ID ACADEMIC_FIELD_ID NUM_CAN_HOST
A M 1 2 10 2
B M 5 4 3 1
C F 2 1 3 2
D F 1 2 10 3
E M 5 1 3 1
F M 5 1 6 1
VISTORS:
VISTOR_ID GENDER INTEREST_ONE_ID INTEREST_TWO_ID ACADEMIC_FIELD_ID
1 M 2 1 10
2 M 5 4 3
3 M 1 2 2
4 F 4 1 6
请注意,所有兴趣 id 都来自相同的列表,academic_field_id 也是如此(但自然来自与兴趣不同的列表)。所以我想要一个查询/程序,它首先根据性别返回给定访问者的前 X 个最佳主机匹配,而不是根据哪些主机匹配最多的兴趣和学术领域。兴趣匹配不重要(interest_one 可以匹配interest_two,反之亦然)。因此,Vistor 1 的示例输出:
BEST_MATCHES (for Vistor 1..only males with most matches)
VISITOR_ID HOST_ID INTEREST_ONE_MATCH INTEREST_TWO_MATCH Academic_int_MATCH
1 A x [one to two] x [two to one] x
1 B - - - Next best..which is not too good!
和访客 2:
BEST_MATCHES
VISITOR_ID HOST_ID INTEREST_ONE_MATCH INTEREST_TWO_MATCH Academic_int_MATCH
2 B x x x
2 E x - x
2 F x - -
等等。
【问题讨论】:
-
您使用的是哪个 dbms?