【发布时间】:2015-12-29 22:40:52
【问题描述】:
由于现有的数据库架构设计不佳,我必须以this thread 中所示的特殊方式编写选择语句。
SELECT MAX(CASE WHEN Name = 'C' THEN RelativePath END) AS C,
MAX(CASE WHEN Name = 'CC' THEN RelativePath END) AS CC,
MAX(CASE WHEN Name = 'S' THEN RelativePath END) AS S,
MAX(CASE WHEN Name = 'SC' THEN RelativePath END) AS SC,
MAX(CASE WHEN Name = 'R' THEN RelativePath END) AS R,
MAX(CASE WHEN Name = 'RC' THEN RelativePath END) AS RC
FROM myTable
WHERE ID = pId;
现在,我需要将其输出与其父表的 select 语句的输出连接起来。父子表的结构如下:
Parent
-------------------
id -> the primary key
third_party_id
createdBy
createdDate
...
Child
-------------------
id -> the primary key of its Parent table
Name
...
对于给定的 id,我想要的 select 语句的输出结果类似于以下内容:
third_party_id, createdBy, createdDate, C, CC, S, SC, R, RC
子表可能没有给定父表键的条目。我使用左连接的选择语句,但无法获得所需的结果。数据库是 mySQL。
如果单个select语句不起作用,如何为输出构造存储过程?
【问题讨论】:
-
请编辑您的问题并提供示例数据和所需结果。
标签: mysql sql stored-procedures