我在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()"。儿童和孙子课程中的功能没有超载。这就是我的代码中出现错误的原因。当我唯一地设置每个模型类的源时,问题就解决了。
答案 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:";