Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

MySQL, SELECT i JOIN(s) pitanje...

[es] :: MySQL :: MySQL, SELECT i JOIN(s) pitanje...

[ Pregleda: 3469 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 12:41 - pre 248 meseci
Elem imam problem koji sam resio pesacki jer ne znam da ga resim elegantno, pa stoga molim nekog SQL gurua koji uz put dobro poznaje MySQL da mi pomogne...

Napomena: koristim MySQL 3.23.39 .

Imam dve tabele koje su veoma slicne
tabela "produkt1" ima ove kolone: ID, NAME
tabela "produkt2" ima ove kolone: ID, NAMN

Problem koji ja imam je - zelim da spojim obe tabele u jednu jedinu (SELECT rezultat jelte) . Problem mi je zapravo sto se druga kolona u drugoj tabeli zove drugacije i ne smem da promenim njen naziv da bih odradio prosti JOIN. Ne znam u MySQL kako reci da su NAME i NAMN jedna te ista kolona prilikom JOIN-a. Nazalost UNION u ovoj verziji ne postoji da bih eventualno spojio dva ista rezultata u jedan.

Svaki konstruktivan predlog je dobrodosao. Pozdrav svima.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

overflow
Goran Milosavljević
Integration & Internet Senior
Engineer @ Telenor
Beograd

Član broj: 396
Poruke: 345
*.vdial.verat.net

ICQ: 106825659
Sajt: localhost


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 13:53 - pre 248 meseci
JOIN i UNION nemaju veze jedno s' drugim pa sam zbunjen tvojim problemom ...
Da li bi mogao da navedes konkretan primer sa nekoliko n-torki u tabelama i rezultat koji zelis da dobijes?
Sve sto je besmislenije, utoliko je bolje.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 14:09 - pre 248 meseci
Znam ja da nemaju veze, ali u ovom slucaju mogu da imaju veze...
evo tabela:

tabela produkt1 (id, name):
1, 'tastatura'
2, 'mis'
3, 'monitor'

tabela produkt2 (id, namn):

55, 'stampac'
131, 'RS232C kabl 5m'
1111, 'mouse pad'

Zelim da spojim ove tabele i dobijem rezultat: (id, name):
1, 'tastatura'
2, 'mis'
3, 'monitor'
55, 'stampac'
131, 'RS232C kabl 5m'
1111, 'mouse pad'


Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
*.vdial.verat.net



+11 Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 18:47 - pre 248 meseci
Napravis privremenu tabelu odgovarajuce strukture pa dvaput odradis select into table...

Pedja
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 19:05 - pre 248 meseci
Predraze, to nazalost nije elegantno resenje koje zapravo trazim. :(
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

flylord
Ilić Aleksandar
Simplicity d.o.o.
Nis/Uzice

Član broj: 2954
Poruke: 3859
*.rcub.bg.ac.yu

ICQ: 4849714


+68 Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 20:06 - pre 248 meseci
UNION je jedini moguci nacin za koji ja znam, tako da mozda je bolje da trazis neku alternativu. A verovatno ces morati preko minimum dva upita:(
Poz
p.s. nada se da gresim
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 20:24 - pre 248 meseci
Stvar je u tome da sam ja ziveo u ubedjenju da se mogu izbeci dva INSERT-a u privremenu tabelu. S obzirom da niko nije dao resenje, a i ja se, naravno, nisam setio nicega, ostaje mi moje resenje u kome dva SELECT rezultata "snimim" u jedan jedini asocijativni niz...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.236.EUnet.yu



+1 Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 20:47 - pre 248 meseci
SELECT t1.* t2.* FROM tabela1 AS t1 LEFT JOIN tabela2 AS t2 ON (t2.neka_kolona = t1.ime_neke_kolone) WHERE ...

naravno, neka_kolona i ime_neke_kolone mogu biti proizvoljne kolone koje moraju imati isti tip (INT - INT, CHAR - CHAR) ...

ako se zovu isto onda mozes
USING (ime_iste_kolone)

Ovo je odgovor na prvo pitanje, ali tek sada sam video da si pitanje preformulisao pa trazis nesto drugo.
Goran Pilipović fka bluesman
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 21:40 - pre 248 meseci
Ne, nigde nisam preformulisao pitanje, problem ostaje i dalje isti. Probacu da odradim posao na taj nacin, ali cisto sumnjam, jer onaj tvoj SQL kod ne radi ono sto sam ja rekao u polaznom tekstu. Svejedno hvala! :-)
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 21:55 - pre 248 meseci
Da malo pojasnim zasto ovo gore ne daje dobar rezultat...
Prosto onaj gore statement ce napraviti kao rezultat tabelu sa svim kolonama iz jedne i druge tabele, sto ja ne zelim, ja zelim samo dve kolone iz dve tabele, od kojih se prva (id) kolona zove ISTO u obe tabele, a druga kolona se zove razlicito - u jednoj "name" u drugoj "namn"...
Da, kolone su naravno istog tipa, i nema istih redova u tabelama gde su "id"-jevi isti! :-)
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

byTer

Član broj: 10936
Poruke: 1221
*.info-net.co.yu

ICQ: 47761626


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...24.11.2003. u 01:22 - pre 248 meseci
Ne znam kolko ja razumem ali mozda pomogne nesto poput

SELECT kol1, kol2, tab2.col1 as STH FROM tab1 INNER JOIN tab2 ON tab1.id=tab2.id


Odnosno samo da promenis ime polju.... Jel to treba?
 
Odgovor na temu

overflow
Goran Milosavljević
Integration & Internet Senior
Engineer @ Telenor
Beograd

Član broj: 396
Poruke: 345
*.vdial.verat.net

ICQ: 106825659
Sajt: localhost


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...24.11.2003. u 08:28 - pre 248 meseci
Interesantan problem.
Moj predlog ti je prikacen uz poruku.
Priznajem da nije elegantno resenje, ali je tu negde sa trenutnim koji koristis ...
Sve sto je besmislenije, utoliko je bolje.
Prikačeni fajlovi
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.222.EUnet.yu



+1 Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...25.11.2003. u 02:55 - pre 248 meseci
Citat:
leka:
Ne, nigde nisam preformulisao pitanje, problem ostaje i dalje isti. Probacu da odradim posao na taj nacin, ali cisto sumnjam, jer onaj tvoj SQL kod ne radi ono sto sam ja rekao u polaznom tekstu. Svejedno hvala! :-)


Ma jasno mi je bilo dok sam pisao, ali posto sam vec bio napisao gre'ota fa se baci :-))

Ne moze da skodi, a ako ne skodi... :-))
Goran Pilipović fka bluesman
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...25.11.2003. u 13:46 - pre 248 meseci
Pa tako sam vec i sam resio svoj problem. Ali sam mislio (kao sto pise u prvoj poruci) da postoji elegantnije resenje... :(

Citat:
overflow:
Interesantan problem.
Moj predlog ti je prikacen uz poruku.
Priznajem da nije elegantno resenje, ali je tu negde sa trenutnim koji koristis ...


Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
*.vdial.verat.net



+11 Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...26.11.2003. u 10:49 - pre 248 meseci
Evo nesto drugaciji prustup, bez pomocne tabele.

U svaku do tabela se doda slog sa istim ID-om koji sluzi za filtriranje kao nepotreban.
Evo primera podataka. U ovom primeru je uzeot da slgo sa ID-om 0 sluzi za filtriranje. To znaci da ne sme da postoji slog koji koristi taj id.

Code:

DROP TABLE IF EXISTS t1;
CREATE TABLE `t1` (
  `id` tinyint(3) unsigned default '0',
  `desc1` varchar(10) default NULL
) ENGINE=MyISAM;
INSERT INTO t1 VALUES("1", "Val1-1");
INSERT INTO t1 VALUES("3", "Val1-3");
INSERT INTO t1 VALUES("5", "Val1-5");
INSERT INTO t1 VALUES("7", "Val1-7");
INSERT INTO t1 VALUES("8", "Val1-8");
INSERT INTO t1 VALUES("0", "zero");

DROP TABLE IF EXISTS t2;
CREATE TABLE `t2` (
  `id` tinyint(3) unsigned default '0',
  `desc2` varchar(20) default NULL
) ENGINE=MyISAM;
INSERT INTO t2 VALUES("2", "Val2-2");
INSERT INTO t2 VALUES("4", "Val2-4");
INSERT INTO t2 VALUES("6", "Val2-6");
INSERT INTO t2 VALUES("8", "Val2-8");
INSERT INTO t2 VALUES("0", "zero");


Code:

select IF(t1.id <> 0,t1.id,t2.id) AS tid, IF(t1.id <> 0,t1.desc1,t2.desc2) AS tdesc from t1,t2
WHERE (t1.id <> t2.id) AND ((t1.id = 0) OR (t2.id=0))


Mada ja i dalje mislim da je najelegantije uraditi select u privremenu tabelu. :)
 
Odgovor na temu

[es] :: MySQL :: MySQL, SELECT i JOIN(s) pitanje...

[ Pregleda: 3469 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.