我有两个表,发票和成员,通过字段InvoiceNum通过PK / FK关系连接。我创建了以下sql,它工作正常,并按预期拉出44条记录。
SELECT
INVOICES.InvoiceNum,
INVOICES.GroupNum,
INVOICES.DivisionNum,
INVOICES.DateBillFrom,
INVOICES.DateBillTo
FROM INVOICES
INNER JOIN MEMBERS ON INVOICES.InvoiceNum = MEMBERS.InvoiceNum
WHERE MEMBERS.MemberNum = '20032526000'
现在,我想用INVOICES.GroupNum
和INVOICES.DivisionNum
替换上述查询中的GroupName
和DivisionName
。这些值存在于“组”和“分区”表中,这些表还具有相应的Group_num和Division_num字段。我创建了以下sql。问题是它现在拉出528条记录而不是44条记录!
SELECT
INVOICES.InvoiceNum,
INVOICES.DateBillFrom,
INVOICES.DateBillTo,
DIVISIONS.DIVISION_NAME,
GROUPS.GROUP_NAME
FROM INVOICES
INNER JOIN MEMBERS ON INVOICES.InvoiceNum = MEMBERS.InvoiceNum
INNER JOIN GROUPS ON INVOICES.GroupNum = GROUPS.Group_Num
INNER JOIN DIVISIONS ON INVOICES.DivisionNum = DIVISIONS.Division_Num
WHERE MEMBERS.MemberNum = '20032526000'
非常感谢任何帮助。
答案 0 :(得分:0)
您的表之间至少有一个关系在查询中缺失。它为您提供额外的记录。查找所有常见字段。比如,与群体有关的分歧?
答案 1 :(得分:0)
就SQL语法而言,语句很好。
但问题是你必须问自己(并回答):
Groups
给出的GroupNum
行数是多少? Divisions
同上 - DivisionNum
有多少行? 看起来这些数字不是唯一的 - 每个数字都有多行 - 因此你会得到多行返回