| [MySQL] Kopiranje iz tabele v tabelo | ||
|---|---|---|
|
komac
16. jun 2010 08:54:43
Pridružen od: 14. avg 2009 733 objav 673 29 7 |
#1
Rabim sql stavek, s katerim bi lahko skopiral več polj iz ene tabele v drugo, ampak se ta ne smejo podvajati. Torej z DISTINCT mi deluje samo pri enem polju, pri dveh pa ne gre več. tabela 1 id | bcd | cde1 | 5 | xy Polji bcd in cde morata iti v tabelo 2, kjer je drugačna struktura, recimo takole: id | tuv | uvzTorej bcd gre v tuv polje, cde pa v uvz polje. Pomembno je še, da ne sme biti podvojenih zapisov. Recimo zapisa z id 1 in 2 sta popolnoma identična, zato mora biti v novi tabeli samo en zapis. Zapisa 3 in 4 pa nista identična, ker se cde razlikuje. Preden zapravim celo dopoldne pri tem, ve kdo kako narediti distinct na dveh poljih? |
|
|
Roky
16. jun 2010 09:16:41
Pridružen od: 9. apr 2008 2506 objav 3240 335 107 |
#2
Za začetek moj vodič. Namesto distinct pa uporabi GROUPBY polje1, polje2, polje3 oz. če rabiš za vsa polja distinct lahko uporabiš tudi: GROUP BY CONCAT(polje1, polje2, polje3, polje4). rok.meglic@gmail.com - 031 492 148
|
|
|
schtr4jh
16. jun 2010 09:19:39
Pridružen od: 24. nov 2008 402 objav 322 33 4 |
#3
SELECT DISTINCT(CONCAT(bcd, 'nekUniqueString', cde)), bcd, cde FROM tabela1; Potem pa v zanki vpišeš rezultat v drugo tabelo. 'nekUniqueString' je uporabljen samo zato, da so res vrnjeni vsi različni rezultati - v primeru, da bi imel vnose bcd in cde 11,2 in 1,12 bi brez 'nekUniqueString' za mysql to bil enak rezultat. EDiT: Ah, me je že Roky - sicer z drugačno rešitvijo - prehitel. =) EDiT2: Pretestiral in ugotovil, da uniqueStringa ne potrebuješ, deluje tudi brez ... |
|
|
komac
16. jun 2010 09:45:23
Pridružen od: 14. avg 2009 733 objav 673 29 7 |
#4
Hvala obema, sem rešil po schtr4jhovi metodi, ki sem jo imel že spisano, pa zaradi typota ni delovala. |
|