Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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/MariaDB中将来自同一列不同行的两个单元格的数据合并_Mysql_Sql_Mariadb - Fatal编程技术网

在MySQL/MariaDB中将来自同一列不同行的两个单元格的数据合并

在MySQL/MariaDB中将来自同一列不同行的两个单元格的数据合并,mysql,sql,mariadb,Mysql,Sql,Mariadb,我在寻找这个问题的答案时遇到了困难,因为我缺乏关于术语和SQL的知识,即使我知道它可能存在 我有一个包含以下表格的数据库: desc-pkm +-----------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------+---------------+------+---

我在寻找这个问题的答案时遇到了困难,因为我缺乏关于术语和SQL的知识,即使我知道它可能存在

我有一个包含以下表格的数据库:
desc-pkm

+-----------------+---------------+------+-----+---------+-------+
| Field           | Type          | Null | Key | Default | Extra |
+-----------------+---------------+------+-----+---------+-------+
| pkm_code        | int(11)       | NO   | PRI | NULL    |       |
| pkm_name        | varchar(32)   | NO   | UNI | NULL    |       |
| pkm_category    | varchar(32)   | NO   |     | NULL    |       |
| pkm_description | varchar(1280) | NO   |     | NULL    |       |
| pkm_weight      | float         | NO   |     | NULL    |       |
| evolution_code  | int(11)       | YES  | MUL | NULL    |       |
+-----------------+---------------+------+-----+---------+-------+
描述poketype

+---------------------+------------+------+-----+---------+-------+
| Field               | Type       | Null | Key | Default | Extra |
+---------------------+------------+------+-----+---------+-------+
| pkm_code            | int(11)    | NO   | PRI | NULL    |       |
| type_code           | int(11)    | NO   | PRI | NULL    |       |
| poketype_is_primary | tinyint(1) | NO   |     | NULL    |       |
+---------------------+------------+------+-----+---------+-------+
desc型

+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| type_code | int(11)     | NO   | PRI | NULL    |       |
| type_name | varchar(32) | NO   | UNI | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
到目前为止,我有以下SQL命令:

SELECT pkm.pkm_code, pkm.pkm_name,type.type_name FROM poketype
    JOIN pkm ON pkm.pkm_code=poketype.pkm_code
    JOIN type ON poketype.type_code=type.type_code
    WHERE pkm.pkm_code<=151
    ORDER BY pkm_code;
预期结果:

+-----------+-------------+-------------+
| pkm_code  | pkm_name    | type_name   |
+-----------+-------------+-------------+
| 1         | Bulbasaur   | grass,poison|
(是的,bulbasaur是一种双重类型。我也很惊讶!)

使用mysql将来自不同记录的值组合成一个值:

SELECT pkm.pkm_code, pkm.pkm_name, group_concat(type.type_name) as typename FROM poketype
    JOIN pkm ON pkm.pkm_code=poketype.pkm_code
    JOIN type ON poketype.type_code=type.type_code
    WHERE pkm.pkm_code<=151
    GROUP BY pkm.pkm_code, pkm.pkm_name;
从poketype中选择pkm.pkm_代码、pkm.pkm_名称、group_concat(type.type_名称)作为typename
在pkm.pkm_code=poketype.pkm_code上加入pkm
poketype.type\u code=type.type\u code上的联接类型

其中pkm.pkm_代码编辑您的问题,并提供示例数据和所需结果。抱歉,这不起作用。它包含列中的所有内容,我只是
poketype
中的单元格,其中
pkm_code
与所包含的单元格相同。我认为您错过了group by子句。它在我回答的问题的最后一行。
SELECT pkm.pkm_code, pkm.pkm_name, group_concat(type.type_name) as typename FROM poketype
    JOIN pkm ON pkm.pkm_code=poketype.pkm_code
    JOIN type ON poketype.type_code=type.type_code
    WHERE pkm.pkm_code<=151
    GROUP BY pkm.pkm_code, pkm.pkm_name;