Codeigniter 中的 LEFT JOIN 显示语法错误

LEFT JOIN in Codeigniter shows syntax error

我想要 select 一个 table 来保存特定项目 ID 的所有问题。为此,我计划进行 LEFT JOIN 并将项目 table 中的 projects_id 获取到问题 table 中的列 'issues_projects_id'。这里不是必须用JOIN吗?

    // $this->db->join('issues', 'issues.issues_projects_id = projects.projects_id', 'left');
   // $query1 = $this->db->get();
   $squery="SELECT * FROM projects LEFT JOIN issues ON issues.issues_projects_id=projects.projects_id";
    $query1= $this->db->query($squery);
    $query= $this->db->query($squery);
    return $query->result();
    return $query1->result();

上面的代码显示以下错误并且没有输出。

A Database Error Occurred
Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LEFT JOIN `issues` ON `issues`.`issues_projects_id` = `projects`.`projects_id`' at line 2

SELECT * LEFT JOIN `issues` ON `issues`.`issues_projects_id` = `projects`.`projects_id`

Filename: C:/wamp64/www/projects/issue_tracker/system/database/DB_driver.php

Line Number: 691

项目 Table

projects_id projects_name
1 abc
2 xyz

问题 Table

issues_id issues_description 问题_projects_id
1 gfj 1
2 fghgj 1

你错过了from statement:

SELECT * 
FROM `projects` --< here 
LEFT JOIN `issues` 
  ON `issues`.`issues_projects_id` = `projects`.`projects_id`
WHERE projects_id = ?

您似乎是在自行加入 table 问题,这样做不会为您提供您似乎需要的所有数据。

最好的做法是不要使用 select *,而是写下所有必需的列名。

SELECT `Projects_id`, `projects_name`, `issues_id`, `issues_description`, `issues_projects_id`
from  `projects` 
LEFT JOIN `issues` ON `issues`.`issues_projects_id` = `projects`.`projects_id`