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

Kueri apa yang akan saya gunakan untuk mendapatkan catatan saudara saat menggunakan tabel penutupan?

Saudara kandung dari simpul yang diberikan akan memiliki nenek moyang yang sama. Namun, ini akan mencakup "1" serta daftar Anda:

select t.*
from table t 
where t.ancestor = (select ancestor from table t2 where t.id = 2);

Di tabel Anda, saya tidak yakin apa artinya ancestor sama dengan descendant . Tapi, menurut saya berikut ini adalah kueri yang Anda inginkan:

select t.*
from table t 
where t.ancestor = (select ancestor from table t2 where t2.id = 2) and
      t.ancestor <> t.descendant and
      t.id <> 2;

EDIT:

Anda dapat melakukan ini sebagai eksplisit bergabung seperti ini:

select t.*
from table t join
     table t2
     on t.ancestor = t2.ancestor and
        t2.id = 2 a
where t.id <> 2 and
      t.ancestor <> t.descendant;

Catatan:Saya juga menambahkan kondisi t.id <> 2 jadi "2" tidak dianggap sebagai saudara kandungnya sendiri.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mana yang lebih cepat:Banyak baris atau banyak kolom?

  2. pengkodean mySQL dan PHP

  3. PHP &PDO:Satu Koneksi vs Lebih dari Satu Koneksi

  4. Kapan waktu yang paling disarankan untuk menggunakan mysql_real_escape_string()

  5. MySQL Menambahkan KOMENTAR ke Kunci Asing