1

我怎样才能在mysql中得到如下结果?

我想按 id 获取所有产品组并显示它所属的类别。
我怎样才能在一个 sql 中得到它?
在此处输入图像描述

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `a`
-- ----------------------------
DROP TABLE IF EXISTS `a`;
CREATE TABLE `a` (
  `products_id` int(11) NOT NULL,
  `products_name` varchar(255) default NULL,
  PRIMARY KEY  (`products_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of a
-- ----------------------------
INSERT INTO `a` VALUES ('1', 'hello');
INSERT INTO `a` VALUES ('2', 'world');




SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `b`
-- ----------------------------
DROP TABLE IF EXISTS `b`;
CREATE TABLE `b` (
  `products_id` int(11) NOT NULL,
  `categories_id` int(11) NOT NULL,
  PRIMARY KEY  (`products_id`,`categories_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of b
-- ----------------------------
INSERT INTO `b` VALUES ('1', '1');
INSERT INTO `b` VALUES ('1', '2');
INSERT INTO `b` VALUES ('2', '1');
INSERT INTO `b` VALUES ('2', '3');
4

2 回答 2

1

这就是你想要的?

SELECT a.products_id, a.products_name, 
GROUP_CONCAT(CONVERT(b.categories_id,CHAR(8))) as products_to_categories
FROM a,b 
WHERE a.products_id = b.products_id
GROUP BY a.products_id, a.products_name

小提琴http://www.sqlfiddle.com/#!2/39edfc/3/0

小提琴中的结果图像

在此处输入图像描述

于 2013-08-19T03:26:45.070 回答
1

有使用内部连接的替代方法,欢呼 =)

SELECT a.products_id, a.products_name,group_concat(b.categories_id)  
FROM a
INNER JOIN b ON a.products_id = b.products_id
group by a.products_id, a.products_name
于 2013-08-19T03:39:40.843 回答