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

Permintaan MySQL bergabung dengan tiga tabel

Maksud Anda seperti ini:

select
    a.project_id,
    b.list_id,
    c.item_id
from
    projects a
        join lists b
            on a.project_id=b.project_id
        join items c
            on b.list_id=c.list_id

Outputnya akan seperti:

project_id | list_id | item_id
 1         | 5       |  45
 1         | 5       |  46
 1         | 8       |  12

Atau apakah Anda ingin mengembalikan semua bagiannya dalam satu baris?

Jika Anda menginginkan satu baris, Anda dapat melakukan sesuatu di sepanjang baris:

select
    a.project_id,
    group_concat(b.list_id) as listIDs,
    group_concat(c.item_id) as itemIDs
from
    projects a
        join lists b
            on a.project_id=b.project_id
        join items c
            on b.list_id=c.list_id

Tetapi PHP akan menjadi lebih berantakan untuk menangani semua hal yang dikelompokkan.

Outputnya akan seperti:

project_id | list_id | item_id
 1         | 5,8     |  45, 46, 12

Anda juga dapat mencampur dan mencocokkan keduanya untuk mendapatkan yang terbaik dari kedua dunia:

select
    a.project_id,
    b.list_id as listIDs,
    group_concat(c.item_id) as itemIDs
from
    projects a
        join lists b
            on a.project_id=b.project_id
        join items c
            on b.list_id=c.list_id

Outputnya akan seperti:

project_id | list_id | item_id
 1         | 5       |  45, 46
 1         | 8       |  12


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Contoh Pernyataan JDBC – Sisipkan, Hapus, Perbarui, Pilih Rekam

  2. cara menyinkronkan sqlite ke Mysql

  3. Bagaimana-untuk:Peringkat Hasil Pencarian

  4. php layar putih kematian

  5. Bagaimana cara menyimpan array ke dalam variabel sesi di php