我使用下面的语法的SQL SELECT查询从多个表(使用续集专业)提取数据:SQL SELECT查询语法奎德里
select Study_Results.CASNumber, Study_Results.Dose, Study_Results.Units, Study_Results.Effects, Studies.Species, Studies.Route, Studies.Result, ToxData_References.BriefReference, Studies.Study, Studies.Summary
from Study_Results, Studies, ToxData_References
where Study_Results.ProtocolID = Studies.ProtocolID
AND Studies.Location = ToxData_References.Location
AND Studies.Study = "Local Lymph Node Assay"
order by Study_Results.CASNumber
查询运行并没有一个错误完成,但是当我查看结果,有不匹配数据的记录副本---即,查询结果中似乎不同的记录被错误地组合在一起。
问题:我的语法有什么问题导致数据不匹配?
下面是一些样本输出(实际和预期)
一行是正确的: 103694-68-4 10.0000%NOE小鼠皮肤德之馨,2002C局部淋巴结实验在研究的条件下,试验材料不太可能成为皮肤敏感剂。 49523 45957
但第二排我从不同的Study_Results.CASNumber适用相同Study_Results.CASNumber数据:
103694-68-4 10.0000%NOE小鼠皮肤德之馨,2002C局部淋巴结实验中的应用的丙酮浓度为1%,3%和10%w/v的测试材料在3%和10%w/v浓度下导致同位素掺入增加3倍以上。因此,测试材料显示为皮肤敏化剂,证实了用于该研究的方案的有效性。 49523 45957
上述数据实际上适用于不同的CASNumber。
很难说。你会添加3个表格的样本数据,你得到的输出样本和你期望的输出样本吗? – automatic
三张桌子的定义也会有所帮助。您可能不会加入正确的(或者全部)外键/主键。 –
我认为他仍然从'Study_Results'和'ToxData_References'获得交叉连接,因为该关系没有在WHERE条款 – JNK