Autor | Zpráva | ||
---|---|---|---|
Scrand Profil * |
#1 · Zasláno: 24. 4. 2011, 11:26:13
Zdravím,
mám 2 tabulky zakladni a docasna. Pomocí příkazu zjistím, které položky v tabulce docasna jsou navíc. SELECT * FROM docasna WHERE id NOT IN (SELECT id FROM zakladni) AND vyrobce = 'bcc405486b625cb2ff867f34aa53643f' A nyní bych chtěl ty položky navíc zkopírovat z tabulky docasna do tabulky zakladni. Zkoušel jsem toto, ale vypisuje mi to chybu: insert into zakladni SELECT * FROM docasna WHERE id NOT IN (SELECT id FROM zakladni) AND vyrobce = 'bcc405486b625cb2ff867f34aa53643f' chyba: #1136 - Column count doesn't match value count at row 1 Děkuji za rady! Prolezl jsem plno fór a všeho, ale prostě nevím, možná že to i blbě hledám... |
||
TomášK Profil |
#2 · Zasláno: 24. 4. 2011, 14:28:44
Scrand:
Postup je dobrý, jen je potřeba ošetřit tu chybu. Zdá se mi samovysvětlující, ale zřejmě není. Tak tedy počet sloupců, které vkládáte (tj. počet sloupců v tabulce zakladni) neodpovídá počtu sloupců, které chcete vložit (tj. výsledek selectu, což je počet sloupců v tabulce docasna). Je lepší přesně specifikovat co a kam, vyhnete se chybám při změně tabulek: INSERT INTO zakladni(hodnota1, hodnota2) SELECT hodnota1, hodnota2 FROM ... |
||
Časová prodleva: 3 dny
|
|||
Scrand Profil * |
#3 · Zasláno: 27. 4. 2011, 20:44:22
Díky, funguje, no já jsem to i takhle zkoušel, ale pravděpodobně jsem udělal stejně ještě nějakou chybu a proto mi to předtím nešlo :D
ještě jednou díky! :) |
||
Scrand Profil * |
#4 · Zasláno: 27. 4. 2011, 21:30:35
Tak teď jsem navíc zjistil, že mám blbě vytvořenej ten select pro výběr :(
Mám 2 tabulky TAB 1 TAB2 1 1 2 4 3 4 5 Potřebuji vybrat z TAB 1 řádky které nejsou v TAB2 tedy 2, 3 a 5 ten můj původní SELECT je asi udělanej úplně blbě :) Děkuji za rady... |
||
Kajman_ Profil * |
#5 · Zasláno: 27. 4. 2011, 22:57:46
Scrand:
„ten můj původní SELECT je asi udělanej úplně blbě“ Pokud zakladni=TAB2 a docasna=TAB 1, tak vypadá korektně. |
||
Scrand Profil * |
#6 · Zasláno: 27. 4. 2011, 23:57:37
No já to tu zjednodušil, ve skutečnosti to potřebuju
1. Vše z TAB1 co není v TAB2 2. Vše z TAB2 co není v TAB1 Ta druhá možnost funguje, ale u té první mi to nějak nejede :D vybere to pouze 221 záznamů, přitom by to mělo vybrat asi něco přes 1600 :) stačí je prohodit názvy tabulek ne? |
||
Scrand Profil * |
#7 · Zasláno: 28. 4. 2011, 00:27:34
Tak to je dost divný :) mám tam 3 sloupce s unikátním ID, ale každé se chová jinak! Tam kde je index, tak to nefunguje korektně, ale tam kde index není, tak to funguje správně, tak to jsem z toho jelen! :)
|
||
Kajman_ Profil * |
#8 · Zasláno: 28. 4. 2011, 09:57:19
Scrand:
„stačí je prohodit názvy tabulek ne?“ Pokud tam používáte nějaké to omezení na výrobce, tak to nemusí stačit. Vytvořte spustitelný příklad dat a dotazů, které Vás zlobí. |
||
Časová prodleva: 14 let
|
0