2012-04-04 53 views
1

我有以下表MySQL如何完成此选择连接?

http://sqlfiddle.com/#!2/647e9

如何选择CONCAT显示为随后

期望的结果:

+---------+-----------+---------------+---------------------------------+ 
| Origin | Stock  | Farm Title |   Farm Values   | 
+---------+-----------+---------------+---------------------------------+ 
| US  | P1  | Perdue  |        333 | 
| US  | P3  | Holstein  |        825 | 
| CA  | Q4  | FarmOne  |   455,536,617,698,779,860 | 
| CA  | Q4  | Beef Farm  |   540,550,560,570,580,590 | 
| CA  | Q4  | CattleOne  | 1080,1100,1120,1140,1160,1180 | 
| MX  | B3  | Cow Mill  |        11 | 
| MX  | B3  | Dotterers  |        98 | 
| MX  | B3  | AgriZone  |        202 | 
+---------+-----------+---------------+---------------------------------+ 

我试图

Select 
ORIGIN_NAME 
STOCK_TITLE 
FARM_TITLE 
concat(FARM_VALUES, ",") 

From Farm f 
JOIN STOCK s on S.S_ID=f.S_ID 
JOIN ORIGIN o on o.ORI_ID=s.ORI_ID 
+0

两个字段你concating什么,他们怎么样子? – 2012-04-04 23:52:11

+0

@RPM表在这里找到http://sqlfiddle.com/#!2/647e9我只是试图concat(逗号分隔)该特定农场标题的每个值 – stackoverflow 2012-04-04 23:55:12

+0

您需要编辑您的帖子以提供表格信息在这里。发布在外部网站通常是不可接受的。首先,它使人们不得不离开这个网站,甚至读你的问题。其次,如果该外部网站在未来不可用或消失,它会使您的问题(以及任何答案)变得毫无意义。最后,未来用户无法搜索。请编辑您的帖子,在此提供信息(并查看[常问问题](http://stackoverflow.com/faq),让您的问题和答案自给自足。谢谢:) – 2012-04-04 23:57:12

回答

4

的数据是在捣鼓有点不同,所以结果并不完全正确,但是这似乎是你要什么:

select origin_name, stock_title, farm_title, group_concat(FARM_COMPONENETS) from ORIGIN o 
inner join STOCK s on o.ORIGIN_ID = s.ORIGIN_ID 
inner join FARM f on s.stock_id = f.stock_id 
inner join gate g on f.farm_id = g.farm_id 
group by origin_name, stock_title, farm_title 
+0

相关文档:['GROUP_CONCAT'](http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html# function_group-CONCAT)。它将所有值与“GROUP BY”变量的每个级别中的逗号分隔符连接起来。 – 2012-04-05 00:00:51