Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL,根据外键选择多行作为一行_Mysql_Sql - Fatal编程技术网

MySQL,根据外键选择多行作为一行

MySQL,根据外键选择多行作为一行,mysql,sql,Mysql,Sql,我有以下两张桌子 | ID | NAME | AGE | |----|------|-----| | 0 | John | 30 | | 1 | Nick | 35 | | 2 | Mike | 30 | | USERID | FRUIT | |--------|------------| | 0 | apple | | 0 | orange | | 1 | banana | | 1 | tomat

我有以下两张桌子

| 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 |
我使用这个查询是为了得到每个年龄
SELECT users.name,group_concat(水果)的用户想要的水果
来自用户、水果
其中users.id=fruits.userid和users.age试试这个(填充函数):

这将产生:

Name       Fruits
John    apple, orange
Mike    pear, cherry

正如我在主要帖子中所说,我使用GROUP_CONCAT()做了一些测试,比如
SELECT users.name,GROUP_CONCAT(fruit)from users,fruits where users.id=fruits.userid和users.ageSide在您的
JOIN
语法中注意:谢谢,这样做了。为了从第三个表中添加数据(具有类似的形式),我应该如何更改查询?我尝试了
SELECT users.name,group_concat(水果),group_concat(蔬菜)FROM users,fruits,vegets WHERE users.id=fruits.userid和users.id=vegets.userid和users.age尝试这个:group_concat(concat_WS('',fruit,vegeture))工作得不太好,我想我在rest查询中做错了。这是一把小提琴,这有用吗?从用户、水果、蔬菜中选择users.name、GROUP_CONCAT(不同的水果)、GROUP_CONCAT(不同的蔬菜),其中users.id=水果.userid和users.id=蔬菜.userid和users.age
| 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 |
SELECT users.name, group_concat( fruit )
FROM users,fruits 
WHERE users.id=fruits.userid AND users.age<34
group by user.name
CREATE TABLE #Test(
    Name    VARCHAR(100),
    FRUIT   VARCHAR(100)
)

INSERT INTO #Test VALUES
    ('John', 'apple'),
    ('John', 'orange'), 
    ('Mike', 'pear'),
    ('Mike', 'cherry')

SELECT Name,
       STUFF((SELECT ', ' + FRUIT
              FROM #Test t1
              WHERE t1.Name = t2.Name 
              FOR XML PATH(''), TYPE).value('.','VARCHAR(MAX)'),1,2,'') AS 'Fruits'
FROM #Test t2
Group by Name

Drop Table #Test
Name       Fruits
John    apple, orange
Mike    pear, cherry