Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Kopiowanie tabeli w MySQL
Forum PHP.pl > Forum > Przedszkole
krzesik
Witam mam do skopiowania tebelę do archiwum, jak skopiować to wiem ale w tym przypadku muszę zrobić to dołączając kolejną a następnie kopii dokonać sprawdzając warunek

TABELA A
id_rek, id_wpisu, nazwa, adres
TABELA B
id_rek_arch, id_rek, id_wpisu, nazwa, adres
TABELA C
id_rek, id_wpisu, data

mam coś takiego ale mi nie wychodzi:
  1. .......
  2. INSERT INTO tabelaB (`id_rek`,`id_wpisu`,`nazwa`,`adres`)
  3. SELECT `id_rek`,`id_wpisu`,`nazwa`,`adres`FROM tabelaA
  4. LEFT JOIN tabelaC ON tabelaC.id_wpisu=tabelaB.id_wpisu WHERE tabelaC.DATA <= '2014-10-01'
SpiritCode
DATA jest składową mysql. Musisz więc dać ją w ciapki (``)

  1. INSERT INTO tabelaB (`id_rek`,`id_wpisu`,`nazwa`,`adres`)
  2. SELECT a.`id_rek`,a.`id_wpisu`,a.`nazwa`,a.`adres`FROM tabelaA a
  3. LEFT JOIN tabelaC c ON c.id_wpisu=b.id_wpisu WHERE c.`data`<= '2014-10-01'
krzesik
Cytat(SpiritCode @ 6.02.2015, 08:31:06 ) *
DATA jest składową mysql. Musisz więc dać ją w ciapki (``)

  1. INSERT INTO tabelaB (`id_rek`,`id_wpisu`,`nazwa`,`adres`)
  2. SELECT a.`id_rek`,a.`id_wpisu`,a.`nazwa`,a.`adres`FROM tabelaA a
  3. LEFT JOIN tabelaC c ON c.id_wpisu=b.id_wpisu WHERE c.`data`<= '2014-10-01'


tak się patrzę na kod, ale brakuje mi aliasu "b" powinien być przy insercie?
SpiritCode
niekoniecznie. Nie powinno mieć to wpływu działanie zapytania wink.gif
krzesik
OK dziękuję za pomoc, temat rozwiązany

Cytat(SpiritCode @ 6.02.2015, 11:07:24 ) *
niekoniecznie. Nie powinno mieć to wpływu działanie zapytania wink.gif


A mam jeszcze pytanie jedno, potrzebuję jeszcze po wcześniejszym skopiowaniu usubąć te dane, próbowałem w taki sposób:

DELETE FROM tabelaA WHERE (SELECT a.`id_rek`,a.`id_wpisu`,a.`nazwa`,a.`adres`FROM tabelaA a
LEFT JOIN tabelaC c ON c.id_wpisu=a.id_wpisu WHERE c.`data`<= '2014-10-01')

i niestety mam błąd
SpiritCode
A po co robisz JOIN jesli masz jeden wspólny ID(np id_wpisu).
Zmień zapytanie na:
  1. DELETE FROM tabelaA WHERE id_wpisu IN (SELECT c.`id_wpisu`FROM tabelaC c WHERE c.`data`<= '2014-10-01')
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.