以下行提供錯誤消息。mySQL加入問題
$query = 'SELECT * FROM products AS p LEFT JOIN categories AS c USING ON c.id = p.category_id WHERE c.name = "Galleri1"
AND p.status = "active"' ;
$Q = $this->db->query($query);
數據庫結構。 類別
CREATE TABLE IF NOT EXISTS `categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`shortdesc` varchar(255) NOT NULL,
`longdesc` text NOT NULL,
`status` enum('active','inactive') NOT NULL,
`parentid` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;
...
...
PRODUCT
CREATE TABLE IF NOT EXISTS `products` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`shortdesc` varchar(255) NOT NULL,
`longdesc` text NOT NULL,
`thumbnail` varchar(255) NOT NULL,
`image` varchar(255) NOT NULL,
`class` varchar(255) DEFAULT NULL,
`grouping` varchar(16) DEFAULT NULL,
`status` enum('active','inactive') NOT NULL,
`category_id` int(11) NOT NULL,
`featured` enum('true','false') NOT NULL,
`price` float(4,2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;
錯誤消息
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 'ON c.id = p.category_id WHERE c.name = "Galleri1" AND p.status = "active"' at line 1
SELECT * FROM products AS p LEFT JOIN categories AS c USING ON c.id = p.category_id WHERE c.name = "Galleri1" AND p.status = "active"
Q1。任何人都可以指出我的錯誤嗎? Q2302。任何人都可以告訴我如何在Codeigniter的Active Record類中編寫此代碼?
在此先感謝。
感謝。它解決了這個問題。但我得到了另一個。在此查詢之後,如果($ Q-> num_rows()> 0)foreach($ Q-> result_array()爲$ row){ $ data = array( \t「id」=> $ row [' ID '], \t \t 「名」=> $行[' 名稱 '], \t 「shortdesc」=> $行[' shortdesc'], \t \t ... \t \t 「類別」=> $行['categories.name'] 我得到最後一個錯誤。如何分配類別的名稱? – shin
'@ shin':你最好把它作爲另一個問題發佈。 – Quassnoi
好吧。我在這裏發佈。 http:///stackoverflow.com/questions/1828406/如何對獲取數據從 - 一個連表 – shin