Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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 - Fatal编程技术网

Mysql 是否在单行中获取多行的查询结果?

Mysql 是否在单行中获取多行的查询结果?,mysql,Mysql,我有一个表,每行中的产品详细信息都是唯一的。第二个表是税基,对任何单个项目都有多个税基。我想要的结果应该有每个项目的单行,所有与该项目相关的税收应该在该行与其他细节 item item_id name type 1. bike vehicle tax id tax_name tax_rate item_id 1. tax1 12 1 2. tax2 13 1 3. tax3 14 1 结果应该是: id name

我有一个表,每行中的产品详细信息都是唯一的。第二个表是税基,对任何单个项目都有多个税基。我想要的结果应该有每个项目的单行,所有与该项目相关的税收应该在该行与其他细节

item
item_id name type
1. bike vehicle

tax
id tax_name  tax_rate item_id
1. tax1       12        1
2. tax2       13        1
3. tax3       14        1
结果应该是:

id name type tax_name_1 tax_rate_1 tax_name_2 tax_rate_2 tax_name_3 tax_rate_3
1  bike vehicle tax1        12        tax2      13          tax3         14 

这是一个典型的表透视问题,请尝试以下操作:

select
    item.*,
    max(case when tax.id = 1 then tax_name end) as tax_name_1,
    max(case when tax.id = 1 then tax_rate end) as tax_rate_1,
    max(case when tax.id = 2 then tax_name end) as tax_name_2,
    max(case when tax.id = 2 then tax_rate end) as tax_rate_2,
    max(case when tax.id = 3 then tax_name end) as tax_name_3,
    max(case when tax.id = 3 then tax_rate end) as tax_rate_3
from item
join tax
group by item.id

我认为简单的内部连接将为您完成此任务

SELECT item.*, tax.taxname,tax.taxrate
    FROM table1
    INNER JOIN tax
    ON item.id=tax.id;

税收的数量不确定fixed@AshishSinghal如果它是动态的,那么在这里您必须使用动态sql来完成它。请将此信息添加到您的问题中。请给出tax表的架构。要知道tax表中与itemitem id对应的列与这两个表都相关