Codeigniter 3 - 查询生成器 'join' 方法 '!=' 运算符未提供预期输出

Codeigniter 3 - Query Builder 'join' Method '!=' operator is not giving expected output

不是重复问题!!!


我正在使用 CodeIgniter 3 - 查询生成器 ClassMySQLi.


Tables 在数据库中:

'category_level_1' Table:

'category_level_2' Table:


在model.php中查询:

$query = $this->db
  ->select('category_level_1.id, category_level_1.category')
  ->from('category_level_1')
  ->join('category_level_2', 'category_level_2.cat_lvl1_id != category_level_1.id', 'inner')
  ->group_by('category_level_1.id')
  ->get();

输出:


内部连接无效。


预期输出:


只需要输出'category_level_1'Table中与'category_level_2'Table.

无关的记录

问题:

如上所示,根据“!=”运算符,输出值与预期不符 不工作 'inner' 加入.

$query = $this->db ->select('category_level_1.id, category_level_1.category') ->from('category_level_1') ->join('category_level_2', 'category_level_2.cat_lvl1_id <> category_level_1.id', 'inner') ->group_by('category_level_1.id') ->get();

我建议您尝试使用 leftright joinwhere 子句。试一试以下内容:

$query = $this->db
  ->select('category_level_1.id, category_level_1.category')
  ->from('category_level_1')
  ->join('category_level_2', 'category_level_2.cat_lvl1_id = category_level_1.id', 'left')
  ->where('category_level_2.cat_lvl1_id IS NULL')
  ->group_by('category_level_1.id')
  ->get();

希望对您有所帮助:

$sql = "SELECT id, category 
        FROM category_level_1
        WHERE id NOT IN (SELECT DISTINCT cat_lvl1_id FROM category_level_2)";
$query = $this->db->query($sql);
print_r($query->result());

输出:

Array
(
    [0] => stdClass Object
        (
            [id] => 93
            [category] => dummy
        )
)