首页 > 解决方案 > MySQL - 如何使这两个结果成为单行

问题描述

请参阅图片以获得清晰的图片。AQ,我创建的 ICL 行是针对同一个父级的。

SQL:

SELECT  
CASE WHEN a.approval="Animal Quarntine Report Approval" AND a.approved = 1 THEN  "AQ-APPROVED" 
WHEN a.approval= "Animal Quarntine Report Approval" AND a.approved = 0 THEN "NOT APPROVED"
ELSE "" END AS AQ,
CASE 
WHEN a.approval = "ICL Approval" AND a.approved = 1 THEN  "ICL-APPROVED"
WHEN a.approval = "ICL Approval" AND a.approved = 0 THEN  "NOT APPROVED"
ELSE "" END AS ICL
FROM _39f2b669595dfe4d.`tabShipment Approvals` a
WHERE a.parent = "CLR/GFF/IMP/678/05/21";

我想获得单行结果,而不创建另一个表。有人可以帮帮我吗?谢谢。

多行成单行多列

谢谢你。

开斋节 -

我通过内部连接得到的结果

标签: mysqlsql

解决方案


您可能需要 AQ 和 ICL 行之间的 JOIN 的 ID 或字段来进行 JOIN,然后您可以使用自动引用的连接,如下所示:

SELECT 
CASE WHEN a.approval="Animal Quarntine Report Approval" AND a.approved = 1 THEN "AQ-APPROVED" 
    WHEN a.approval= "Animal Quarntine Report Approval" AND a.approved = 0 THEN "NOT APPROVED" ELSE "" END AS AQ, 

CASE WHEN b.approval = "ICL Approval" AND b.approved = 1 THEN "ICL-APPROVED" 
    WHEN b.approval = "ICL Approval" AND b.approved = 0 THEN "NOT APPROVED" ELSE "" END AS ICL 
FROM _39f2b669595dfe4d.'tabShipment Approvals' a
INNER JOIN _39f2b669595dfe4d.'tabShipment Approvals' b ON a.ID = b.ID
WHERE a.parent = "CLR/GFF/IMP/678/05/21" 

如果您可以显示其他字段,那么示例可以在 JOIN 中更具体


推荐阅读