mysql 查询m_rescue_cost表和m_rescue_type表俩表的关联字段是m_rescue_type表的typeId字段和m_rescue_cost表的rescueType字段相关联,需要将m_rescue_cost表的数据进行行转列怎么操作
时间: 2024-03-19 10:45:32 浏览: 55
数据表行转列
要将行转列可以使用MySQL中的PIVOT函数,但是MySQL本身并没有内置PIVOT函数,我们可以使用CASE WHEN语句来模拟实现。
首先,我们需要使用JOIN语句将m_rescue_cost表和m_rescue_type表进行关联,并使用CASE WHEN语句针对每一个typeId进行判断,然后将对应的rescueCost值放入对应的列中。下面是示例代码:
```
SELECT
m_rescue_type.typeId,
m_rescue_type.typeName,
MAX(CASE WHEN m_rescue_cost.rescueType = 'type1' THEN m_rescue_cost.rescueCost ELSE NULL END) AS 'type1',
MAX(CASE WHEN m_rescue_cost.rescueType = 'type2' THEN m_rescue_cost.rescueCost ELSE NULL END) AS 'type2',
MAX(CASE WHEN m_rescue_cost.rescueType = 'type3' THEN m_rescue_cost.rescueCost ELSE NULL END) AS 'type3'
FROM m_rescue_cost
JOIN m_rescue_type ON m_rescue_cost.rescueType = m_rescue_type.typeId
GROUP BY m_rescue_type.typeId;
```
以上代码中,我们使用了MAX函数来将每个typeId对应的rescueCost值放入对应的列中。需要注意的是,在使用MAX函数时,我们将不符合条件的值赋为NULL,这样就能够确保每个typeId对应的列都只有一个值。
希望我的回答能够帮助到你,如有疑问请随时追问。
阅读全文