cześć. Możecie mi powiedzieć gdzie robię byka? Chcę stworzyć zapytanie, które usunie wiersz w tabeli articles i wszystkie powiązane wiersze w tabeli pics. Tabela pics ma kolumnę pics.artId która jest powiązana z kolumną articles.id relacją jeden do wielu. Zapytanie napisałem tak: DELETE a.*, p.* FROM articles a, pics p LEFT JOIN pics ON a.id = p.artId WHERE a.id = '$id'"; i wywala mi ono że "Nieznana kolumna 'a.id' w on clause" Gdzie to spartaczyłem? Dzięki Smok
mysql - delete left join
cześć. Możecie mi powiedzieć gdzie robię byka? Chcę stworzyć zapytanie, które usunie wiersz w tabeli articles i wszystkie powiązane wiersze w tabeli pics. Tabela pics ma kolumnę pics.artId która jest powiązana z kolumną articles.id relacją jeden do wielu. Zapytanie napisałem tak: DELETE a.*, p.* FROM articles a, pics p LEFT JOIN pics ON a.id = p.artId WHERE a.id = '$id'"; i wywala mi ono że "Nieznana kolumna 'a.id' w on clause" Gdzie to spartaczyłem? Dzięki Smok
smok pisze:
. REFERENCES articles (id) ON DELETE CASCADE
artur
REFERENCES articles (id) ON DELETE CASCADE
artur
Artur Muszyński pisze:
Rozumiem, że mniej więcej tak?:
DELETE a.*, p.* FROM artykuly a, pics p LEFT JOIN pics ON a.id = p.artId WHERE a.id = '$id' REFERENCES artykuly (id) ON DELETE CASCADE";
Muszę poczytać na temat kaskad (nie używałem ich jeszcze), ale na chwilę obecną nie działa. "Something is wrong in your syntax obok 'REFERENCES artykuly (id) ON DELETE CASCADE WHERE a.id = '41'' w linii 5" Smok.
Artur Muszyński pisze: REFERENCES articles (id) ON DELETE CASCADE
artur
Rozumiem, że mniej więcej tak?:
DELETE a.*, p.* FROM artykuly a, pics p LEFT JOIN pics ON a.id = p.artId WHERE a.id = '$id' REFERENCES artykuly (id) ON DELETE CASCADE";
Muszę poczytać na temat kaskad (nie używałem ich jeszcze), ale na chwilę obecną nie działa. "Something is wrong in your syntax obok 'REFERENCES artykuly (id) ON DELETE CASCADE WHERE a.id = '41'' w linii 5"
smok pisze:
Tak, przeczytaj koniecznie. Tylko w rozdziale o CREATE TABLE.
artur