다음 줄은 오류 메시지를 표시합니다.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);
데이터베이스 구조. CATEGORIES
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 ;
...
...
제품
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. 누군가 내 실수를 지적 할 수 있을까?
2. 누구든지 Codeigniter의 Active Record 클래스에서 이것을 쓰는 방법을 말해 줄 수 있습니까?
미리 감사드립니다.
감사합니다. 이 문제를 해결합니다. 하지만 또 하나 있어요. 이 쿼리 다음에 if ($ Q-> num_rows()> 0) { $ ($ Q-> result_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