Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Insert into select
Forum PHP.pl > Forum > Przedszkole
kanji
Witam!

siedzę na taki problemem mam tabele np. dane oraz historia_dane. Tabele są podobne, ponieważ tabela historia_dana ma dodatkowo 2 wiersze tj. data_zmiany oraz przez kogo ta zmiana została zrobiona. Problem mam z poniższym zapytaniem:

  1. INSERT INTO historia_dane ('select * from dane where cos=czemu', 'data', 'jakies_id')


i problem jest taki że wyskakuje mi bład: #1136 - Column count doesn't match value count at row 1
Również próbowałem na inne sposoby np

  1. INSERT INTO historia_dane(a,b,c,d,e,DATA,jakies_id) VALUES('select a,b,c,d,e form dane where cos=czemus', 'data', 'jakies_id')


a najlepsze jest to ze jak zrobilem dla testu zapytanie:
  1. INSERT INTO historia_dane(c,DATA,jakies_id) VALUES('selec c from dane where cos=czemus','data','jakies_id')

To zadziałało poprawnie. Problem jest jak chcę wszystkie wiersze przepisać. W tabeli dane mam jedno pole primary kay oraz jedno uniq. W historia_dane nie mam żadnego indexu gdzyż tam nie jest mi on potrzebny.

Gdzie robię błąd? Z góry dzięki za pomoc smile.gif
phpion
Cytat(kanji @ 17.03.2010, 14:10:34 ) *
a najlepsze jest to ze jak zrobilem dla testu zapytanie:
  1. INSERT INTO historia_dane(c,DATA,jakies_id) VALUES('selec c from dane where cos=czemus','data','jakies_id')

To zadziałało poprawnie.

Przecież to nie ma prawa zadziałać! Do kolumny "c" pakujesz zapytanie w postaci stringa, a nie wartości.

Spróbuj tego:
  1. INSERT INTO historia_dane(c,DATA,jakies_id) SELECT c, DATA, jakies_id FROM dane WHERE cos=czemus
kanji
pola data i jakieś_id są to dodatkowe pola na końcu tabeli historia_dane. Ten sposób co podałem działa. Problem pojawia się jak chce więcej wierszy z tabeli dane :/
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.