[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 | cde



1 | 5 | xy

2 | 5 | xy

3 | 9 | tz

4 | 9 | dc



Polji bcd in cde morata iti v tabelo 2, kjer je drugačna struktura, recimo takole:

tabela 2



id | tuv | uvz



Torej 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?


všeč(0) ni všeč(0) spam(0)
 
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).


všeč(2) ni všeč(0) spam(0)
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 ...


všeč(2) ni všeč(0) spam(0)
 
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.

Ja unique string ni nujen, če so zapisi toliko različni.. Jaz imam same tekstovne zapise, tako da je delalo, če bi imel pa številke, kot sem dal v primeru bi se pa znalo kje kaj zalomit.

V glavnem, še enkrat hvala =)


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se