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

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

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

[ Pregleda: 1363 | Odgovora: 14 ]

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: 2530
*.racasse.se

Sajt: dejan.lekic.org


Profil

icon MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 12:41

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
23.11.2003. u 12:41 

overflow
Goran Milosavljević
Beograd

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

ICQ: 106825659
Sajt: www.paradise.co.yu


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 13:53
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.
prof Jaukovic [FON] : "Kolega, jeste l' nesto rekli ili samo pricate ?"
23.11.2003. u 13:53 

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

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

Sajt: dejan.lekic.org


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 14:09
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
23.11.2003. u 14:09 

broker

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



Profil

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

Pedja
23.11.2003. u 18:47 

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

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

Sajt: dejan.lekic.org


Profil

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

flylord
Ilić Aleksandar
Freedomia (direktor)
Nis/Uzice

Tehnički konsultant
Član broj: 2954
Poruke: 3572
*.rcub.bg.ac.yu

Jabber: flylord@elitesecurity.org
ICQ: 4849714
Sajt: blog.itseminar.org


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 20:06
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
23.11.2003. u 20:06 

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

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

Sajt: dejan.lekic.org


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 20:24
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
23.11.2003. u 20:24 

bluesman
Goran Pilipović
Beograd

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

Sajt: www.goalkeeper.rs


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 20:47
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
23.11.2003. u 20:47 

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

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

Sajt: dejan.lekic.org


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 21:40
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
23.11.2003. u 21:40 

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

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

Sajt: dejan.lekic.org


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...23.11.2003. u 21:55
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
23.11.2003. u 21:55 

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
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?
24.11.2003. u 01:22 

overflow
Goran Milosavljević
Beograd

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

ICQ: 106825659
Sajt: www.paradise.co.yu


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...24.11.2003. u 08:28
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.
prof Jaukovic [FON] : "Kolega, jeste l' nesto rekli ili samo pricate ?"
Prikačeni fajlovi
24.11.2003. u 08:28 

bluesman
Goran Pilipović
Beograd

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

Sajt: www.goalkeeper.rs


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...25.11.2003. u 02:55
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
25.11.2003. u 02:55 

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

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

Sajt: dejan.lekic.org


Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...25.11.2003. u 13:46
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
25.11.2003. u 13:46 

broker

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



Profil

icon Re: MySQL, SELECT i JOIN(s) pitanje...26.11.2003. u 10:49
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
) TYPE=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
) TYPE=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. :)
26.11.2003. u 10:49 

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

[ Pregleda: 1363 | Odgovora: 14 ]

Postavi temu Odgovori

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