Codeigniter 3 - 查询生成器 'join' 方法 '!=' 运算符未提供预期输出
Codeigniter 3 - Query Builder 'join' Method '!=' operator is not giving expected output
不是重复问题!!!
我正在使用 CodeIgniter 3 - 查询生成器 Class 和 MySQLi.
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();
我建议您尝试使用 left
或 right
join
和 where
子句。试一试以下内容:
$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
)
)
不是重复问题!!!
我正在使用 CodeIgniter 3 - 查询生成器 Class 和 MySQLi.
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();
我建议您尝试使用 left
或 right
join
和 where
子句。试一试以下内容:
$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
)
)