【问题标题】:Error Number: 1066 Not unique table/alias: 'service' in codeigniter错误号:1066 不是唯一的表/别名:codeigniter 中的“服务”
【发布时间】:2016-01-08 16:26:58
【问题描述】:

希望以一对多关系获取所有服务 我的代码是

$this->db->select('*');
    $this->db->from('service');
    $this->db->join('user', 'user.user_email = service.user_email', 'inner');
    $this->db->join('service', 'service.user_email = user.user_email', 'inner');
    $query = $this->db->get();

但它给了我一个错误

Error Number: 1066

Not unique table/alias: 'service'

SELECT * FROM (`service`) INNER JOIN `user` ON `user`.`user_email` = `service`.`user_email` INNER JOIN `service` ON `service`.`user_email` = `user`.`user_email`

Filename: C:\xampp\htdocs\service\system\database\DB_driver.php

如果我不这样做

$this->db->from('service');

然后它给出语法错误

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN `user` ON `user`.`user_email` = `service`.`user_email` INNER JOIN `se' at line 2

SELECT * INNER JOIN `user` ON `user`.`user_email` = `service`.`user_email` INNER JOIN `service` ON `service`.`user_email` = `user`.`user_email`

Filename: C:\xampp\htdocs\service\system\database\DB_driver.php

【问题讨论】:

  • 您从service中选择,然后再次加入service(加入user之后)有什么原因吗?
  • stackoverflow.com/questions/19590007/… 关注此。你会得到你的答案。您正在选择样本表两次。
  • 但是它给出了一个语法错误

标签: php mysql codeigniter join inner-join


【解决方案1】:

您正在尝试将service 表加入user 表,然后再次尝试加入service 表。

这不是您通常应该尝试做的事情,当您这样做时,呈现的 SQL 语句包含两次引用 service 表的尝试。这是第二个 JOIN 导致数据库问题并引发您看到的错误。

在这种情况下,只需使用:

$this->db->select('*');
$this->db->from('service');
$this->db->join('user', 'user.user_email = service.user_email', 'inner');
$query = $this->db->get();

自从

$this->db->join('service', 'service.user_email = user.user_email', 'inner');

这里是多余的(您已经在该字段中加入了这些表。

【讨论】:

    猜你喜欢
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    • 1970-01-01
    • 2016-02-14
    相关资源
    最近更新 更多