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

Orang Tua / Anak di meja yang sama

Tidak ada arti anak pertama dalam database, Anda bisa mendapatkan anak pertama dengan minimum id atau nilai minimum, tetapi nilainya tidak disimpan dengan urutan tertentu dalam tabel, sehingga Anda tidak dapat membedakan nilai mana yang pertama.

Tapi, dengan asumsi bahwa id adalah kolom inkremental otomatis, maka nilai anak pertama adalah nilai minimum id , maka Anda dapat melakukan ini:

SELECT
  t1.parent,
  t2.name,
  t1.value
FROM tablename AS t1
INNER JOIN
(
  SELECT MIN(id) AS id, parent
  FROM tablename
  GROUP BY parent
) AS t22 ON t22.id = t1.id AND t1.parent = t22.parent
INNER JOIN tablename AS t2 ON t1.parent = t2.id;

Lihat aksinya di sini:

Ini akan memberi Anda :

| PARENT | NAME | VALUE |
-------------------------
|      1 |  aaa |   111 |
|      3 |  ccc |   333 |

Atau: Anda bisa mendapatkannya dengan nilai minimum:

SELECT
  t1.parent,
  t2.name,
  MIN(t1.value) AS value
FROM tablename AS t1
INNER JOIN tablename AS t2 ON t1.parent = t2.id
GROUP BY t1.parent, t2.name;

Lihat aksinya:

Ini akan memberi Anda:

| PARENT | NAME | VALUE |
-------------------------
|      1 |  aaa |   111 |
|      3 |  ccc |   333 |



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui Bidang Saat Tidak Null

  2. LOAD DATA INFILE pada mesin jarak jauh

  3. Saat menggunakan ini_set('max_execution_time', 0);

  4. MySQL - Karakter Rusia ditampilkan secara tidak benar

  5. MySQLi - mendeklarasikan variabel setelah bind_param?