sql >> Databáze >  >> RDS >> Mysql

Jaký dotaz bych použil k získání sourozeneckých záznamů při použití uzavíracích tabulek?

Sourozenci daného uzlu by měli stejného předka. To by však zahrnovalo „1“ i váš seznam:

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

Ve vaší tabulce si nejsem jistý, co znamená ancestor být stejný jako descendant . Ale myslím, že následující dotaz je ten, který chcete:

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:

Můžete to udělat explicitně připojte se takto:

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;

Poznámka:Přidal jsem také podmínku t.id <> 2 takže "2" není považováno za sourozence.




  1. Jak zjistit čínský znak v MySQL?

  2. UTL_FILE.FREMOVE Příklad:Odstranění souboru v Oracle

  3. Časové pásmo dotazu - db server a klientský počítač mají různá časová pásma

  4. Jak obnovit heslo root mysql?