我正在尝试使用两个表进行内部联接和右联接。 我不知道应该先哪个。
我要从“ qryInvnt_Especies_DAP”中加入“ Objectivo_DAP”表。
InvntID EspCodigo DAP
15 Ec 15
16 Ec 5
17 Ac 13
18 Ac 19
19 Ac 10
20 Ac 20
21 Ac 4
22 Ac 13
23 Ac 16
24 Qr 14
25 Sb 13
26 Pb 50
27 Pb 20
28 Ec 12
29 Ec 30
30 Ec 5
31 Ec 7
32 Ec 40
ObjtDAPID EspCodigo Objectivo LowerDAP UpperDAP
1 Ec Rolaria_Ec 5 35
2 Ec Desenrolar_Ec 35 55
3 Ec Folha_Ec 55 200
4 Pb Folha_Pb 45 200
5 Pb Lenha_Pb 0 45
InvntID EspCodigo DAP Objectivo
15 Ec 15 Rolaria_Ec
16 Ec 5 Rolaria_Ec
26 Pb 50 Folha_Pb
27 Pb 20 Lenha_Pb
28 Ec 12 Rolaria_Ec
29 Ec 30 Rolaria_Ec
30 Ec 5 Rolaria_Ec
31 Ec 7 Rolaria_Ec
32 Ec 40 Desenrolar_Ec
它应该过滤存在于表“ Objectivo_DAP”中的EspCodigo(Ec和Pb),并根据LowerDAP或以Objectivo类型(Rolaria_Ec,Desenrolar_Ec,Folha_Ec等)插入名为Objectivo的列。 “ qryInvnt_Especies_DAP”表中DAP的UpperDAP值。 Range Values - Classes
这是我的查询:过滤器EspCodigo的右连接和Objectivo_DAP.Objectivo的内部连接(下或上)
SELECT qryInvnt_Especies_DAP.InvntID,
qryInvnt_Especies_DAP.Nome,
qryInvnt_Especies_DAP.EspCodigo,
qryInvnt_Especies_DAP.DAP,
Objectivo_DAP.Objectivo
FROM qryInvnt_Especies_DAP
RIGHT JOIN Objectivo_DAP ON qryInvnt_Especies_DAP.EspCodigo = Objectivo_DAP.EspCodigo,
INNER JOIN Objectivo_DAP ON qryInvnt_Especies_DAP.DAP >= Objectivo_DAP.LowerDAP
AND qryInvnt_Especies_DAP.DAP < Objectivo_DAP.UpperDAP;
任何帮助将不胜感激。
谢谢
答案 0 :(得分:0)
我不清楚您为什么认为必须进行两次联接。我认为一个简单的inner join
就能满足您的需求:
SELECT qe.InvntID,
qe.Nome,
qe.EspCodigo,
qe.DAP,
od.Objectivo
FROM qryInvnt_Especies_DAP as qe INNER JOIN
Objectivo_DAP as od
ON qe.EspCodigo = od.EspCodigo
WHERE qe.DAP >= od.LowerDAP AND
qe.DAP < od.UpperDAP;