Bend Source is the Best place in Oregon for weekly updates. : MySQL

HomePage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

MySQL


The above command will give the following results

mysql> SELECT
    ->   p.Product_Name,
    ->   GROUP_CONCAT(c.Category_Name SEPARATOR ', ') AS Category_Names
    -> FROM
    ->   p2c_map AS pc
    -> INNER JOIN
    ->   products AS p ON p.Product_ID = pc.Product_ID
    -> INNER JOIN
    ->   categories AS c ON FIND_IN_SET(c.Category_ID, pc.Category_ID) > 0
    -> GROUP BY
    ->   pc.Product_ID
    -> ;


+--------------+------------------------------------+
| Product_Name | Category_Names                     |
+--------------+------------------------------------+
| Product A    | Category 1, Category 2, Category 4 |
| Product B    | Category 2, Category 3             |
| Product C    | Category 4                         |
| Product D    | Category 4, Category 1             |
+--------------+------------------------------------+
4 rows in set (0.04 sec)


CREATE TABLE IF NOT EXISTS `categories` (
  `Category_ID` int(11) NOT NULL AUTO_INCREMENT,
  `Category_Name` varchar(16) collate latin1_bin NOT NULL,
  PRIMARY KEY  (`Category_ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_bin AUTO_INCREMENT=5 ;

INSERT INTO `categories` (`Category_ID`, `Category_Name`) VALUES
(1, 'Category 1'),(2, 'Category 2'),(3, 'Category 3'),(4, 'Category 4');

CREATE TABLE IF NOT EXISTS `p2c_map` (
  `Product_id` int(11) NOT NULL,
  `Category_ID` int(11) NOT NULL,
  PRIMARY KEY  (`Product_id`,`Category_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_bin;

INSERT INTO `p2c_map` (`Product_id`, `Category_ID`) VALUES
(1, 1),(1, 2),(1, 4),(2, 2),(2, 3),(3, 4),(4, 1),(4, 4);

CREATE TABLE IF NOT EXISTS `products` (
  `Product_ID` int(11) NOT NULL AUTO_INCREMENT,
  `Product_Name` varchar(16) collate latin1_bin NOT NULL,
  PRIMARY KEY  (`Product_ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_bin AUTO_INCREMENT=5 ;

INSERT INTO `products` (`Product_ID`, `Product_Name`) VALUES
(1, 'Product A'),(2, 'Product B'),(3, 'Product C'),(4, 'Product D');

There are 185 comments on this page. [Display comments]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.2
Page was generated in 0.5081 seconds