sql >> データベース >  >> RDS >> Mysql

1つの余分なレコードを返すクエリ。クエリ結果から削除する方法について何かアドバイスはありますか?

    以下を実行します( SQL Fiddle )探している結果を生成します。ユニオンをラップして、nameで並べ替えることができました 分野。そのようにしたくない場合は、削除するか、DistConで並べ替えることができます 代わりにフィールド。

    SELECT * FROM 
    (
      SELECT GROUP_CONCAT(APA_T.district) AS DistCon, t.name
      FROM tbl_activity AS t 
      JOIN tbl_activity_package AS ap ON t.id = ap.id_activity 
      JOIN 
      (
        SELECT DISTINCT apa.district AS district, 
        (
           SELECT s1.id_activity_package 
           FROM tbl_activity_package_address s1
           WHERE apa.district = s1.district
           ORDER BY s1.id DESC
           LIMIT 1
        ) AS idActivityPackage
        FROM 
        tbl_activity_package_address apa
        ORDER BY apa.district
      ) AS APA_T
      ON ap.id = APA_T.idActivityPackage
      GROUP BY t.name 
      UNION 
      SELECT GROUP_CONCAT(apa.district), t.name
      FROM tbl_activity AS t 
      JOIN tbl_activity_package AS ap ON t.id = ap.id_activity 
      JOIN tbl_activity_package_address AS apa ON ap.id = apa.id_activity_package
      WHERE t.name NOT IN 
      (
        SELECT DISTINCT t.name
        FROM tbl_activity AS t 
        JOIN tbl_activity_package AS ap ON t.id = ap.id_activity 
        JOIN 
        (
          SELECT DISTINCT apa.district AS district, 
          (
             SELECT s1.id_activity_package 
             FROM tbl_activity_package_address s1
             WHERE apa.district = s1.district
             ORDER BY s1.id DESC
             LIMIT 1
          ) AS idActivityPackage
          FROM 
          tbl_activity_package_address apa
        ) AS APA_T
        ON ap.id = APA_T.idActivityPackage
      )
      GROUP BY t.name 
    ) AS Mm
    ORDER BY  Mm.name
    


    1. 名前のない制約を削除する

    2. MySQLで文字列の一部を置き換える方法

    3. LINQまたは他のORMのないリポジトリパターン?

    4. PostgreSQLで自動インクリメントの主キーを設定するにはどうすればよいですか?