Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Kopiowanie tabeli w MySQL
krzesik
post
Post #1





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

Ostrzeżenie: (0%)
-----


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'
Go to the top of the page
+Quote Post
SpiritCode
post
Post #2





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

Ostrzeżenie: (0%)
-----


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'
Go to the top of the page
+Quote Post
krzesik
post
Post #3





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
SpiritCode
post
Post #4





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

Ostrzeżenie: (0%)
-----


niekoniecznie. Nie powinno mieć to wpływu działanie zapytania wink.gif
Go to the top of the page
+Quote Post
krzesik
post
Post #5





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

Ostrzeżenie: (0%)
-----


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

Ten post edytował krzesik 6.02.2015, 11:25:47
Go to the top of the page
+Quote Post
SpiritCode
post
Post #6





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

Ostrzeżenie: (0%)
-----


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')
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:28