Witam,
Mam problem z usunięciem danych rekordów w bazie.
DELETE FROM tabela WHERE exists(SELECT * from (
SELECT * FROM tabela AS t1
RIGHT JOIN tabela AS t2 ON ( t2.parent_id = t1.id )
RIGHT JOIN tabela AS t3 ON ( t3.parent_id = t2.id )
RIGHT JOIN tabela AS t4 ON ( t4.parent_id = t3.id )
RIGHT JOIN tabela AS t5 ON ( t5.parent_id = t4.id )
RIGHT JOIN tabela AS t6 ON ( t6.parent_id = t5.id )
RIGHT JOIN tabela AS t7 ON ( t7.parent_id = t6.id )
RIGHT JOIN tabela AS t8 ON ( t8.parent_id = t7.id )
WHERE t1.name = "A"
AND t8.name = "E"
)as t);
Wyżej wymienione polecenie jest złe, ponieważ baza wywala mi błąd #1060 - Duplicate column name 'id' z którym nie wiem jak sobie poradzić
Stworzyłem pewnego rodzaju drzewko które schematycznie wygląda tak A->B->C->D->E
Każdy z danej posiada własne id, id rodzica oraz pole nazwy.
Samo polecenie
SELECT * FROM tabela AS t1
RIGHT JOIN tabela AS t2 ON ( t2.parent_id = t1.id )
RIGHT JOIN tabela AS t3 ON ( t3.parent_id = t2.id )
RIGHT JOIN tabela AS t4 ON ( t4.parent_id = t3.id )
RIGHT JOIN tabela AS t5 ON ( t5.parent_id = t4.id )
RIGHT JOIN tabela AS t6 ON ( t6.parent_id = t5.id )
RIGHT JOIN tabela AS t7 ON ( t7.parent_id = t6.id )
RIGHT JOIN tabela AS t8 ON ( t8.parent_id = t7.id )
WHERE t1.name = "A"
AND t8.name = "E"
;
Wyświetla mi prawidłowo, jednak chciałbym aby własnie te rekordy zostały usunięte.
Proszę o pomoc