i having trouble searching answer question, because of lack of knowledge terminology , sql, though know exists.
i have database following tables:
desc pkm;
+-----------------+---------------+------+-----+---------+-------+ | field | type | null | key | default | | +-----------------+---------------+------+-----+---------+-------+ | 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 | | +-----------------+---------------+------+-----+---------+-------+
desc poketype;
+---------------------+------------+------+-----+---------+-------+ | field | type | null | key | default | | +---------------------+------------+------+-----+---------+-------+ | pkm_code | int(11) | no | pri | null | | | type_code | int(11) | no | pri | null | | | poketype_is_primary | tinyint(1) | no | | null | | +---------------------+------------+------+-----+---------+-------+
desc type;
+-----------+-------------+------+-----+---------+-------+ | field | type | null | key | default | | +-----------+-------------+------+-----+---------+-------+ | type_code | int(11) | no | pri | null | | | type_name | varchar(32) | no | uni | null | | +-----------+-------------+------+-----+---------+-------+
and far have following sql command:
select pkm.pkm_code, pkm.pkm_name,type.type_name poketype join pkm on pkm.pkm_code=poketype.pkm_code join type on poketype.type_code=type.type_code pkm.pkm_code<=151 order pkm_code;
which displays primary , secondary types on separate lines.
how both types display on same row dual-type pokemon?
my current results:
+-----------+-------------+-----------+ | pkm_code | pkm_name | type_name | +-----------+-------------+-----------+ | 1 | bulbasaur | grass | | 1 | bulbasaur | poison |
desired results:
+-----------+-------------+-------------+ | pkm_code | pkm_name | type_name | +-----------+-------------+-------------+ | 1 | bulbasaur | grass,poison|
(yes, bulbasaur dual type. surprised too!)
use mysql's group_concat() function combine values different records in single value:
select pkm.pkm_code, pkm.pkm_name, group_concat(type.type_name) typename poketype join pkm on pkm.pkm_code=poketype.pkm_code join type on poketype.type_code=type.type_code pkm.pkm_code<=151 group pkm.pkm_code, pkm.pkm_name;
Comments
Post a Comment