#1066 - 不是唯一的表/别名:'考试'

时间:2014-11-21 19:44:21

标签: mysql sql

我想在一个SQL语句中获得考试日期,测试和测试名称的值。我能分两个阶段完成,但不能一个阶段。当我尝试将它组合起来时,我会在标题上看到错误。

这是产生错误的SQL语句:

select date, value, tname from examination, testresults, testname
LEFT JOIN examtype ON examtype.etype_id = examination.etype_id
LEFT JOIN examination ON examination.examination_id =  testresults.examination_id
LEFT JOIN testname ON testname.tname_id = testresults.tname_id
where examination.patientnhs_no= '1001001002' 
    and  date > '2008/09/05' 
    and examtype.name like 'blood%' 
    and testname.name like'tsh%' 
order by date asc 
limit 1 

1 个答案:

答案 0 :(得分:0)

您已经列出了两次表格检查,但是您没有给它别名。 一旦进入FROM子句,一次进入LEFT JOIN。 你可能想要

LEFT JOIN examination

LEFT JOIN testresults

在FROM之后删除了testresults和testname。 (见link)。

以下内容应该有效(我没有测试过)。

select date, value, tname from examination
                LEFT JOIN examtype ON examtype.etype_id = examination.etype_id
                LEFT JOIN testresults ON examination.examination_id =  testresults.examination_id
                LEFT JOIN testname ON testname.tname_id = testresults.tname_id
                where examination.patientnhs_no= '1001001002' and  date > '2008/09/05' and examtype.name like 'blood%' and testname.name like'tsh%' order by date asc limit 1