SQLSTATE [42000]:语法错误或访问冲突:1066

时间:2015-01-30 12:23:53

标签: php mysql phalcon

我在PHP Phalcon中使用Xampp服务器。

我有一个模型的层次结构:

  

UsersAbstract是UserOfficials,UserPatients的父级。

     

UsersOfficial是OfficialDoctor的父级。

数据库中的表与上面的模型具有相同的名称,除了名称是camel情况,例如User_Officials等。只是用户名的表没有在驼峰案例中命名。原因是在这个项目开发的早期,我遇到了一个错误,该错误通过将名称更改为UsersAbstract而不是Users_Abstract来解决。

无论如何,所以现在我正在尝试运行代码并且错误导致代码片段在这里:

foreach ($available_users as $user)
{
  $select_doctor = "Select "
         ."UserOfficials.Occupation,"
         ."UsersAbstract.Full_Name,"
         ."UserOfficials.Doc_ID "
         ."from UserOfficials join UsersAbstract "
         ."On UserOfficials.Unique_ID = UsersAbstract.Unique_ID"
         ." Where UserOfficials.Unique_ID = :uid:";

  $doctor_details = $this->modelsManager->executeQuery($select_doctor, array("uid" => $user->Unique_ID));

   if ($doctor_details->occupation == "Doctor")
        $this->available_doctor = $doctor_details;
}

我正在尝试将医生与可用用户列表分开。我收到的错误是这个

SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'usersabstract'

UserOfficials和UsersAbstract表都有一个名为Unique_ID的列,可以将它们相互链接。

编辑:我添加了加入条件

[解决]

UsersAbstract类有一个函数" getSource()"。儿童和孙子课程中的功能没有超载。这就是我的代码中出现错误的原因。当我唯一地设置每个模型类的源时,问题就解决了。

1 个答案:

答案 0 :(得分:0)

尝试此查询。

$select_doctor = "Select "
     ."UserOfficials.Occupation,"
     ."UsersAbstract.Full_Name,"
     ."UserOfficials.Doc_ID "
     ."from UserOfficials join UsersAbstract "
     ."ON (UserOfficials.Unique_ID = UsersAbstract.Unique_ID)"
     ."WHERE UserOfficials.Unique_ID = :uid: AND UsersAbstract.Unique_ID = :uid:";