我有以下2个表。MySQL,根据外键选择多行作为一个
| ID | NAME | AGE |
|----|------|-----|
| 0 | John | 30 |
| 1 | Nick | 35 |
| 2 | Mike | 30 |
| USERID | FRUIT |
|--------|------------|
| 0 | apple |
| 0 | orange |
| 1 | banana |
| 1 | tomato |
| 1 | grape |
| 1 | watermelon |
| 2 | pear |
| 2 | cherry |
我正在使用此查询以获得每个年龄为< 34个喜欢的用户的水果。
SELECT users.name, fruit FROM users,fruits WHERE users.id=fruits.userid AND users.age<34;
结果:
| NAME | FRUIT |
|------|--------|
| John | apple |
| John | orange |
| Mike | pear |
| Mike | cherry |
有没有办法只有一个返回行与一个或多个列的水果每个用户?
期望的结果:
| NAME | FRUIT |
|------|---------------|
| John | apple,orange |
| Mike | pear,cherry |
或
| NAME | FRUIT | FRUIT |
|------|--------|--------|
| John | apple | orange |
| Mike | pear | cherry |
我尝试使用GROUP_CONCAT(),但我没有得到结果,我预计,任何帮助将是巨大的。
提前感谢您的时间。
向我们展示你的努力 – Strawberry 2014-10-08 21:08:47
正如我在主文章中说,我做了一些测试使用GROUP_CONCAT ()like'SELECT users.name,group_concat(fruit)from users,fruits where users.id = fruits.userid AND users.age <34;',我也尝试过使用'group by'(?),但我没有认为这是正确的轨道。 我对sql语法不太熟悉,所以我没有太多想法,任何有关我应该搜索的方向信息的链接都会很棒! – Stavros 2014-10-08 21:16:52
您的'JOIN'语法的注意事项:http://stackoverflow.com/questions/334201/why-isnt-sql-ansi-92-standard-better-adopted-over-ansi-89 – 2014-10-08 21:20:02