我试图用PyroCm在Codeigniter中创建一个邮件系统。在我的邮件表中,我有一个“recipent”行和一个“sender”行,其中包含了发送者和接收者的用户id。为了从id中检索用户名,我试图将表连接在一起,但它只返回了以下错误:
错误编号:1066
非唯一表/别名:'默认用户'
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
文件名:/hsphere/local/home/光明媒体/reuseable.dk/modules/mail/models/mail_m.php
行号: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();
有趣的是,如果我删除最后一个“加入”操作,让它只加入邮件的收件人,一切都很好。
7条答案
按热度按时间dohp0rv51#
这很简单
mnemlml82#
您是否尝试过在连接函数中强制使用别名(“AS”运算符在select子句中不起作用,因为您有......)?
lh80um4z3#
使用别名如下-
mmvthczy4#
您可以使用以下命令:
如果您使用任何db前缀,请使用此
zkure5ic5#
rfbsl7qr6#
在这个线程的时候,我认为codeigniter调用错过了在连接内部执行
AS
的可能性,因此这解决了这个问题:b91juud37#
你可以试试这个核心PHP
还有在Codeigniter中