Czesc wszystkim chcialbym zapytac o taki watek:
Potrzebuje usunac z tabel ze soba powiazanych wszystkie rekordy powiazane z glowna tabla tzn.
Przyklad mam tabele dziecko (imie nazwisko wiek )z ktora powiazana jest tabela rodzic w ktorej jest przypozadkowane dziecko ,moje pytanie czy istnieje jakis sposob zeby automatem usunac np: dzieci ktore maja powyzej 18 lat .Mam nadzieje ze nie namieszalem i uda sie zrozumiec sens mojego pytania.
Pozdrawiam Piotr.
Zapytanie SQL
Re: Zapytanie SQL
Kiedy coś jest powiązane to podczas usuwania z jakiegoś panelu raczej powinno się pytać, czy usunąć w ogóle rekord oraz powiązania. Takie coś może być czasem niebezpieczne (utrata danych). No bo algorytm nie wie jak my stworzyliśmy te dane.
.
W każdej tabeli powinien znajdować się unikalny identyfikator ID.
Teraz np. w tabeli rodzic masz troje rodziców.
W tabeli dziecko masz dzieci
Teraz usuwanie rekordów spokrewnionych dzieci mających powyżej 18 roku życia.
Wole takie coś napisać i być pewnym, że mi czegoś nie usunie. Gotowego zapytania na SQL (jeżeli istnieje) do usunięcia powiązanych danych nie znam.
http://office.microsoft.com/pl-pl/acces ... 11045.aspx - artykuł o tym w MySql Jet (podobne, tylko w Accessie)
Mam nadzieję, że zrozumiałem Twoje pytanie
Pozdrawiam

W każdej tabeli powinien znajdować się unikalny identyfikator ID.
Teraz np. w tabeli rodzic masz troje rodziców.
Code: Zaznacz cały
ID imie nazwisko id_dziecka
1 test1 testt1 2
2 test2 testt2 52
3 test3 testt3 41
Code: Zaznacz cały
ID imie nazwisko wiek
1 dzidzi1 testtt 10
2 dzidzi2 testt1 19
.......................................
41 dzidzi3 testt3 15
.......................................
52 dzidzi4 testt2 26
Code: Zaznacz cały
$dzieci = mysql_query("SELECT * FROM dziecko WHERE wiek > 18");
for ($i = 0; $i < mysql_num_rows($dzieci); $i++)
{
$wiersz = mysql_fetch_array($dzieci);
//mysql_query("DELETE FROM rodzic WHERE id_dziecka = ".$wiersz['ID']." "); - możemy usunąć rodziców co zrobiłby automat ;) możemy też zmienić wartość wskazywanego ID na 0 co możemy oznaczyć brakiem dzieci przy użyciu instrukcji warunkowej
mysql_query("DELETE FROM dziecko WHERE ID = ".$wiersz['ID']." ");
// usuwamy z kazdej tabeli powiazanych z ID
}
http://office.microsoft.com/pl-pl/acces ... 11045.aspx - artykuł o tym w MySql Jet (podobne, tylko w Accessie)
Mam nadzieję, że zrozumiałem Twoje pytanie

Pozdrawiam
Re: Zapytanie SQL
Wielkie dzieki nie dodalem ze potrzebuje to zrobic w bazie firebird ale i tak wielkie dzieki poszukam jeszcze na necie 

-
- Początkujący
- Posty: 5
- Dołączył(a): środa, 30 lipca 2014, 15:11
- Lokalizacja: Katowice
- Contact:
Re: Zapytanie SQL
Poszukaj na Yotubie. Kiedyś natrafiłem na gościa, który dawał zrzuty z ekranu jak robił podobne rzeczy. A w opisie dawał komendy.