在ACCESS中怎么样使用关联?
我写了一个查询语句,使用的右关联,但是在执行时发生错误
SELECT WomanInfo.WomanID AS WomanID, WomanInfo.WomanNo AS WomanNo, CodeInfoA.CodeDec AS WomanType, WomanInfo.WomanName AS WomanName, WomanInfo.BirthDay AS BirthDay, WomanInfo.WomanIDCard AS WomanIDCard, CodeInfoK.CodeDec AS SchoolAge, WomanInfo.Job AS Job, WomanInfo.Telephone AS Telephone, WomanInfo.Mobilephone AS Mobilephone, WomanInfo.ManName AS ManName, WomanInfo.ManBirthday AS ManBirthDay, WomanInfo.ManIDCard AS ManIDCard, CodeInfoB.CodeDec AS MaryState, WomanInfo.FamilyCode AS FamilyCode, CodeInfoC.CodeDec AS BearingStatus, WomanInfo.BearingDate AS BearingState, WomanInfo.ChildBirthday AS ChildBirthday, CodeInfoD.CodeDec AS ChildSex, CodeInfoE.CodeDec AS ChildPre, CodeInfoF.CodeDec AS BearingPre, WomanInfo.CyeticCheckTime AS CyeticCheckTime, WomanInfo.MensesTime AS MeneseTime, CodeInfoG.CodeDec AS ManageStatus, WomanInfo.ReportDate AS ReportDate, WomanInfo.BearingService AS BearingService, CodeInfoH.CodeDec AS WorkResult, WomanInfo.BearingNo AS BearingNo, WomanInfo.FirstCheckDate AS FirstCheckDate, WomanInfo.NearCheckDate AS NearCheckDate, WomanInfo.InputZeroTime AS InputZeroTime, WomanInfo.OutZeroTime AS OutZeroTime, WomanInfo.Address AS Address, WomanInfo.WomanMemo AS WomanMemo
FROM
(((((((((WomanInfo
right join CodeInfo AS CodeInfoA on (CodeInfoA.Code=WomanInfo.WomanType and CodeInfoA.CodeType='0006'))
right join CodeInfo AS CodeInfoB on (CodeInfoB.Code=WomanInfo.MaryState and CodeInfoB.CodeType='0008'))
right join CodeInfo AS CodeInfoC on (CodeInfoC.Code=WomanInfo.BearingStatus and CodeInfoC.CodeType='0003'))
right join CodeInfo AS CodeInfoD on (CodeInfoD.Code=WomanInfo.ChildSex and CodeInfoD.CodeType='0001'))
right join CodeInfo AS CodeInfoE on (CodeInfoE.Code=WomanInfo.ChildPre and CodeInfoE.CodeType='0002'))
right join CodeInfo AS CodeInfoF on (CodeInfoF.Code=WomanInfo.BearingPre and CodeInfoF.CodeType='0004'))
right join CodeInfo AS CodeInfoG on (CodeInfoG.Code=WomanInfo.ManageStatus and CodeInfoG.CodeType='0007'))
right join CodeInfo AS CodeInfoH on (CodeInfoH.Code=WomanInfo.WorkResult and CodeInfoH.CodeType='0009'))
right join CodeInfo AS CodeInfoK on (CodeInfoK.Code=WomanInfo.SchoolAge and CodeInfoK.CodeType='0005'))
请问,象这样的关联怎么写?
问题点数:50、回复次数:6Top
1 楼wwwwb()回复于 2006-03-07 16:07:45 得分 20
记得要加括号,一层一层 JOIN 下去
try:
((((((((WomanInfo
right join CodeInfo AS CodeInfoA on (CodeInfoA.Code=WomanInfo.WomanType and CodeInfoA.CodeType='0006'))
right join CodeInfo AS CodeInfoB on (CodeInfoB.Code=WomanInfo.MaryState and CodeInfoB.CodeType='0008'))
right join CodeInfo AS CodeInfoC on (CodeInfoC.Code=WomanInfo.BearingStatus and CodeInfoC.CodeType='0003'))
right join CodeInfo AS CodeInfoD on (CodeInfoD.Code=WomanInfo.ChildSex and CodeInfoD.CodeType='0001'))
right join CodeInfo AS CodeInfoE on (CodeInfoE.Code=WomanInfo.ChildPre and CodeInfoE.CodeType='0002'))
right join CodeInfo AS CodeInfoF on (CodeInfoF.Code=WomanInfo.BearingPre and CodeInfoF.CodeType='0004'))
right join CodeInfo AS CodeInfoG on (CodeInfoG.Code=WomanInfo.ManageStatus and CodeInfoG.CodeType='0007'))
right join CodeInfo AS CodeInfoH on (CodeInfoH.Code=WomanInfo.WorkResult and CodeInfoH.CodeType='0009'))
right join CodeInfo AS CodeInfoK on (CodeInfoK.Code=WomanInfo.SchoolAge and CodeInfoK.CodeType='0005')
Top
2 楼citybug_nj()回复于 2006-03-07 16:20:47 得分 0
我不就是这么写的嘛,但是在ACCESS的SQL查询中过不去,提示为:“不支持连接表达式”Top
3 楼lcahuang(沧海月明珠有泪)回复于 2006-03-07 16:37:36 得分 20
你好象用不着这么多join吧。你只是用到了两个表,WomanInfo和CodeInfo,把其他条件作为where条件是不是就可以了。而且,同一个表通过不同的条件被jion多次,即使语法没有问题,你的结果也不会对地吧。Top
4 楼changechange(http://access911.net 是我的个人网站,欢迎光临)回复于 2006-03-07 17:57:57 得分 5
呵呵,强的!Top
5 楼wwwwb()回复于 2006-03-08 09:03:48 得分 5
试试 将所有WHERE 条件写在最后Top
6 楼citybug_nj()回复于 2006-03-08 09:10:41 得分 0
使用这种关联,自然就存在可能WOMANINFO表中某些字段并不和CODEINFO表里面的数据匹配,如果把WHERE条件都写到最后,那结果中是什么都查不出来。左关联的语法形式就是一层层的加括号,我已经解决了。但是右关联呢?Top




