我有一个表格用于其他两个表格之间的链接/关系表格,一张客户表格和一个表格组。一个小组由一个或多个顾客组成。链接表就像给出成员名单的选择ID
APP_ID | GROUP_ID | CUSTOMER_ID
1 | 1 | 123
1 | 1 | 124
1 | 1 | 125
1 | 2 | 123
1 | 2 | 125
2 | 3 | 123
3 | 1 | 123
3 | 1 | 124
3 | 1 | 125
我现在有一个需求,给客户ID的列表,以便能够获得该组ID为客户ID的该列表。组ID可能不是唯一的,相同的组ID将包含相同的客户ID列表,但该组可能存在多个app_id。
我在想,
SELECT APP_ID, GROUP_ID, COUNT(CUSTOMER_ID) AS COUNT
FROM GROUP_CUST_REL
WHERE CUSTOMER_ID IN (<list of ids>)
GROUP BY APP_ID, GROUP_ID
HAVING COUNT(CUSTOMER_ID) = <number of ids in list>
将返回我的一切,包括所有的客户ID在给定列表中,只有那些组ID组ID的。因此,对于(123,125)列表,只有组ID 2会从上述示例返回
然后,我将不得不链接到应用程序表以使用其创建的时间戳来标识组存在的最新应用程序我可以从组表中提取正确的/最新的信息。
有没有人有任何想法,这是否是最有效的方式来做到这一点?如果还有更快更清洁的方式,我会很感激你的想法。
谢谢,是的,我花了一些时间看它,这是我可以想出的最好...想把它扔到社区进行验证。作为一名与其他团队不同时区的远程工作人员,有时很难说服自己正确的解决方案,而没有其他人注意它。 – MadMurf