2016-04-05 18 views
1

Bir SQL deyimini CodeIgniter sorgu oluşturucu kaydına dönüştürmekte sorun yaşıyorum. Tezgahta, aşağıdaki sorguyu sorunsuz olarak çalıştırıyorum.codeigniter sorgu oluşturucusu veritabanı hatası eşittir

Bu MySQL WorkBench çalışır ...

# This 
SELECT DISTINCT 
    projects.id, projects.title 
FROM 
    projects 
INNER JOIN 
    positions 
ON 
    (projects.id = positions.project_id) 
WHERE (positions.is_draft = '0') 

Sorgu oluşturucu

$this->db->select('DISTINCT projects.id, projects.title'); 
$this->db->from('projects'); 
$this->db->join('positions', 'projects.id = positions.project_id', 'inner'); 
$this->db->where('positions.is_draft', '0'); 
$query = $this->db->get(); 

return $query->result(); 

Ben de

$this->db->where('positions.is_draft = 0'); 
denedim

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 '.`id`, `projects`.`title` FROM `projects` INNER JOIN `positions` ON `projects`.`' at line 1 

SELECT `DISTINCT` `projects`.`id`, `projects`.`title` FROM `projects` INNER JOIN `positions` ON `projects`.`id` = `positions`.`project_id` WHERE `positions`.`is_draft` =0 

Hata

Sanırım problem eşittir, ama sizce ne düşünüyorsunuz? Bununla oynadım ama aynı hatayı almaya devam ediyorum.

cevap

1

distinct() ile ilgili olabilir. Codigniter'da farklı kullanmanın birkaç yolu vardır.

$this->db->distinct(); 

veya örnekte

tamam bu

$this->db->select('DISTINCT(projects.id), projects.title'); 
+0

Oh deneyin. Sorgu oluşturucunun farklı bir yöntemi olduğunu fark etmedim. İyi çalışıyor gibi görünüyor, teşekkürler. – Leon

İlgili konular