Решение
Я полагал, что вызов codeigniter упустил возможность сделать AS внутри функции соединения, или, по крайней мере, это то, что я знаю до сих пор, любая поправка будет оценена,Поэтому я сделал это вместо первоначального вызова
$sql = "
SELECT default_mailsystem.*,
recipent.first_name AS modtager,
sender.first_name AS afsender
FROM default_mailsystem
LEFT JOIN default_profiles AS recipent
ON recipent.id = default_mailsystem.id
LEFT JOIN default_profiles AS sender
ON sender.id = default_mailsystem.id
";
return $this->db->query($sql)->result();
Вопрос
Я пытаюсь создать почтовую систему в Codeigniter с PyroCms.В моей почтовой таблице есть строка «получатель» и строка «отправитель», которая содержит идентификатор пользователя отправителя и получателя.Чтобы извлечь имена пользователей из идентификаторов, я пытаюсь присоединиться к таблице вместе, но она просто возвращает мне эту ошибку:
Номер ошибки: 1066
Not unique table/alias: 'default_users'
SELECT `default_mailsystem`.*, `default_users`.`username` AS modtager, `default_users`.`username` as afsender FROM (`default_mailsystem`) LEFT JOIN `default_users` ON `default_mailsystem`.`recipent` = `default_modtager`.`id` LEFT JOIN `default_users` ON `default_mailsystem`.`sender` = `default_afsender`.`id` ORDER BY `id` DESC
Filename: /hsphere/local/home/brightmedia/reuseable.dk/modules/mail/models/mail_m.php
Line Number: 13
Мой код выглядит следующим образом:
$this->db->select('mailsystem.*, users.username AS modtager, users.username as afsender')
->join('users', 'mailsystem.recipent = modtager.id', 'left')
->join('users', 'mailsystem.sender = afsender.id', 'left');
$this->db->order_by('id', 'DESC');
return $this->db->get('mailsystem')->result();
Самое смешное, что если я удаляю последнюю операцию «присоединиться» и оставляю ее только для присоединения к получателю почты, все работает хорошо.
Любые предложения будут оценены.С уважением, Джонас