我有一个记录表,与另一个表有一对多的关系。我想返回第一个表中的所有记录,其中第二个表中的所有条目都以逗号分隔的列表中找到。
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。简在列表中有一个条目,但不是全部,所以我不想让她回来。
答案 0 :(得分:2)
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)
)
此外,我希望您为客户使用唯一标识符,而不仅仅是名称。