Mysql SQL:如何在此查询中获取UniqueIdentifier列

Mysql SQL:如何在此查询中获取UniqueIdentifier列,mysql,sql,Mysql,Sql,一些背景说明: 我有一些表格,想知道每个职位的最低日期。 一个职位有多个存储日期的部门 示例: 位置1有 部门日期1:2019年5月30日, 部门日期2:2019年6月1日, 部门日期3:2019年6月5日。。。。等等 在以下输出中获取UniqueIdentifier列id\u abteilungen时遇到问题: 用于获取上述结果的查询如下: SQL 为了得到这个结果,我需要按id\u positionen进行分组。 只要我试着按id位置分组,id就可以了 结果将再次显示所有部门的所有职位及其

一些背景说明:
我有一些表格,想知道每个职位的最低日期。 一个职位有多个存储日期的部门

示例:
位置1有
部门日期1:2019年5月30日,
部门日期2:2019年6月1日,
部门日期3:2019年6月5日。。。。等等

在以下输出中获取UniqueIdentifier列id\u abteilungen时遇到问题:

用于获取上述结果的查询如下:

SQL

为了得到这个结果,我需要按id\u positionen进行分组。 只要我试着按id位置分组,id就可以了
结果将再次显示所有部门的所有职位及其日期

取得的结果必须是这样,但我根本不知道如何获得这个结果:


如果有关于表、主键和外键的问题,或者您需要了解的其他信息,请随时提问。我所需要的只是正确的查询,以获得一个位置中每个最低日期的id\u abteilungen唯一标识符,以及查询结果图像中显示的其他列。

您不应该使用tbl\u Positionen\u abteilungen.id\u Positionen in group by
相反,您应该为min Abteilungstermin选择加入子项的结果

    select  * 
    FROM tbl_Auftrag 
    INNER JOIN tbl_Positionen ON tbl_Auftrag.auftrag_id = tbl_Positionen.id_auftrag 
    INNER JOIN tbl_Positionen_Abteilungen ON tbl_Positionen.positionen_id = tbl_Positionen_Abteilungen.id_positionen
    INNER JOIN  (
        SELECT tbl_Auftrag.Auftragsnummer
            , tbl_Positionen.Bezeichnung
            , MIN(tbl_Positionen_Abteilungen.Abteilungstermin) AS Abteilungstermin
        FROM tbl_Auftrag 
        INNER JOIN tbl_Positionen ON tbl_Auftrag.auftrag_id = tbl_Positionen.id_auftrag 
        INNER JOIN tbl_Positionen_Abteilungen ON tbl_Positionen.positionen_id = tbl_Positionen_Abteilungen.id_positionen
        WHERE tbl_Positionen_Abteilungen.fertiggestellt = '0'
        GROUP BY  tbl_Auftrag.Auftragsnummer, tbl_Positionen.Bezeichnung
    ) t on t.Auftragsnummer = tbl_Auftrag.Auftragsnummer 
        and t.Bezeichnung =  tbl_Positionen.Bezeichnung 
        and t.Abteilungstermin = tbl_Positionen_Abteilungen.Abteilungstermin
    WHERE tbl_Positionen_Abteilungen.fertiggestellt = '0'
    select  * 
    FROM tbl_Auftrag 
    INNER JOIN tbl_Positionen ON tbl_Auftrag.auftrag_id = tbl_Positionen.id_auftrag 
    INNER JOIN tbl_Positionen_Abteilungen ON tbl_Positionen.positionen_id = tbl_Positionen_Abteilungen.id_positionen
    INNER JOIN  (
        SELECT tbl_Auftrag.Auftragsnummer
            , tbl_Positionen.Bezeichnung
            , MIN(tbl_Positionen_Abteilungen.Abteilungstermin) AS Abteilungstermin
        FROM tbl_Auftrag 
        INNER JOIN tbl_Positionen ON tbl_Auftrag.auftrag_id = tbl_Positionen.id_auftrag 
        INNER JOIN tbl_Positionen_Abteilungen ON tbl_Positionen.positionen_id = tbl_Positionen_Abteilungen.id_positionen
        WHERE tbl_Positionen_Abteilungen.fertiggestellt = '0'
        GROUP BY  tbl_Auftrag.Auftragsnummer, tbl_Positionen.Bezeichnung
    ) t on t.Auftragsnummer = tbl_Auftrag.Auftragsnummer 
        and t.Bezeichnung =  tbl_Positionen.Bezeichnung 
        and t.Abteilungstermin = tbl_Positionen_Abteilungen.Abteilungstermin
    WHERE tbl_Positionen_Abteilungen.fertiggestellt = '0'