我必须先得到一对多连接的三个结果。例如
JOIN `company`.`Reason`
ON ((`company`.`Reason`.`quality_id` = `company`.`Quality`.`id`)))
质量与理性有一对多的关系。
我需要在列reason1中显示reasons的第一个结果,在reason2中显示第二个,在reason3中显示第三个。
目前,我仅以这种方式显示一行结果:
`company`.`Reason`.`status` AS `Reason`
我不知道它是如何工作的,它是如何选择一行的,哪一行?
我怎样才能做同样的事情,但只有3行和不同的列名?
质量
ID | a | b
1 | a1 | b1
2 | a2 | b2
原因
ID | quality_id | status
1 | quality_id_1 | status_1
2 | quality_id_1 | status_2
2 | quality_id_2 | status_1
2 | quality_id_2 | status_3
所以如果我想得到id 1质量的原因,我会得到
REASON_1 | REASON_2 | REASON_3
status_1 | status_2 | null
1条答案
按热度按时间wfsdck301#
您需要在按id from quality分区的reason表中创建一个排序,然后将其透视到希望返回的from quality列上。在下面的代码中,为了避免对基表进行修改,我使用了变量和子查询。