Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MYSQL Kelompokkan menurut kolom dengan 2 baris untuk setiap grup

Jika Anda membutuhkan dua id arbitrer, gunakan min() dan max() :

SELECT c.`cat_name` , min(id), max(id)
FROM `info` i INNER JOIN
     `category` c
     ON i.`cat_id` = c.`cat_id`
WHERE c.`cat_name` IS NOT NULL
GROUP BY c`.`cat_name`
ORDER BY c.`cat_name` ASC ;

Catatan:Anda menggunakan LEFT JOIN dan kemudian menggabungkan dengan kolom di kedua meja. Ini biasanya bukan ide yang baik, karena semua yang tidak cocok ditempatkan dalam NULL kelompok. Selanjutnya, WHERE klausa mengubah LEFT JOIN ke INNER JOIN lagi pula, jadi saya sudah memperbaikinya. WHERE klausa mungkin diperlukan atau tidak, tergantung pada apakah cat_name . atau tidak pernah NULL .

Jika Anda menginginkan dua yang terbesar atau terkecil -- dan dapat menempatkannya di kolom yang sama:

SELECT c.`cat_name`,
       substring_index(group_concat id order by id), ',', 2) as ids_2 
FROM `info` i INNER JOIN
     `category` c
     ON i.`cat_id` = c.`cat_id`
WHERE c.`cat_name` IS NOT NULL
GROUP BY c`.`cat_name`
ORDER BY c.`cat_name` ASC ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL mengambil catatan terbaru untuk Grup

  2. Bagaimana cara menangani BLOB dan CLOB di olingo v2?

  3. Bagaimana cara membuat pernyataan PDO berparameter dalam PHP untuk kueri dinamis?

  4. Cara menjalankan beberapa Kueri Pembaruan dalam satu pernyataan di PHP dan mySQL

  5. cara mendapatkan objek serupa berdasarkan tag