繁体   English   中英

选择具有一对多关系的记录,其中所有记录都在列表中

[英]Select records with one-to-many relationship where all of the many are in a list

我有一个与另一个表具有一对多关系的记录表。 我想返回第一个表中的所有记录,其中第二个表中的所有条目都在逗号分隔的列表中找到。

Client   ClientData                   Client    Project
John                                  John      1
Jane                                  Jane      2
Mary                                  Mary      3
Randy                                 John      4
                                      Mary      5
                                      Randy     6
                                      Jane      7

因此,如果我的列表是(1、2、3、4、5),那么我想返回John和Mary的Client和ClientData。 简在清单中只有一个条目,但不是全部,所以我不希望她回来。

SELECT DISTINCT c.*
FROM ClientData c
INNER JOIN ProjectData pd
    ON c.client_name = pd.client_name AND pd.project_id IN (1,2,3,4,5)
WHERE c.client_name NOT IN (
    SELECT client_name FROM ProjectData WHERE project_id NOT IN (1,2,3,4,5)
)

另外,希望您为客户使用唯一的标识符,而不仅仅是名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM