Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 5.699 pregleda

Najnovija ↓

SQL upit i sortiranje podataka 10.11.2009. u 01:01 · pre 206 meseci #1
Koristim IB.

Imam 3 tabele sa sledecom strukturom:

tabela1 [ID,NAZIV]
tabela2 [IDU,IDS1,IDS2,IDS3]
tabela3 [IDU]

Potrebno je da dobijem podatke u sledecoj formi:

tabela1.ID, tabela1.NAZIV gde je tabela1.ID=tabela2.IDS1
tabela1.ID, tabela1.NAZIV gde je tabela1.ID=tabela2.IDS2
tabela1.ID, tabela1.NAZIV gde je tabela1.ID=tabela2.IDS3

i tako u tri reda.

Ovo sve dobijam sa SQL-om (deo and p.idu='100' mi sluzi samo za proveru)

select t.id, t.naziv from tabela1 t
where t.id in (select s.ids1 from tabela2 s, tabela3 p where s.idu=p.idu and p.idu='100')
or t.id in (select s.ids2 from tabela2 s, tabela3 p where s.idu=p.idu and p.idu='100')
or t.id in (select s.ids3 from tabela2 s, tabela3 p where s.idu=p.idu and p.idu='100')

Problem je sto meni trebaju podaci sortirani redom po redosledu polja IDS1, IDS2, IDS3

Ja dobijem validne podatke, ali mi se podaci, te tri kolone sortiraju po ID od manjeg ka vecem.

Kako da sortiram podatke po redosledu IDS1, IDS2, IDS3?

Hvala
Re: SQL upit i sortiranje podataka 10.11.2009. u 09:59 · pre 206 meseci #2
Store procedura ili probaj ovako:

Code:

select Tabela1.id, Tabela1.naziv 
   from Tabela1, Tabela2 
WHERE
  Tabela1.ID = Tabela2.IDS1 OR Tabela1.ID = Tabela2.IDS2 OR Tabela1.ID = Tabela2.IDS3
ORDER BY Tabela2.IDS1, Tabela2.IDS2, Tabela2.IDS3


Re: SQL upit i sortiranje podataka 10.11.2009. u 10:05 · pre 206 meseci #3
A gde je ovde veza sa tabelom3, koja je na neki nacin kljucna i iz koje dobijam pocetni podatak TABELA3.IDU ???
Re: SQL upit i sortiranje podataka 10.11.2009. u 12:14 · pre 206 meseci #4
> select t.id, t.naziv from tabela1 t
> where t.id in (select s.ids1 from tabela2 s, tabela3 p where s.idu=p.idu and p.idu='100')
> or t.id in (select s.ids2 from tabela2 s, tabela3 p where s.idu=p.idu and p.idu='100')
> or t.id in (select s.ids3 from tabela2 s, tabela3 p where s.idu=p.idu and p.idu='100')

> Problem je sto meni trebaju podaci sortirani redom po redosledu polja IDS1, IDS2, IDS3

Nisam siguran kakav redosled ti treba (ako to nije to, daj neki primer), ni da li sam pogodio uslov, ali u svakom slučaju gledaj da upit pišeš sa joinovima, to je uglavnom najefikasniji način izvršavanja.

Code:

SELECT
  T1.ID, T1.NAZIV
FROM
  TABELA1 T1
  INNER JOIN TABELA2 T2 
     ON T1.ID = T2.IDS1 OR T1.ID = T2.IDS2 OR T1.ID = T2.IDS3
  INNER JOIN TABELA3 T3
    ON T3.IDU = T2.IDU
ORDER BY
  T2.IDS1, T2.IDS2, T2.IDS3  
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: SQL upit i sortiranje podataka 10.11.2009. u 19:11 · pre 206 meseci #5
Sada sam bliže odgovoru.

Naime, dužan sam da dam dodatno objašnjenje.

Savkićev skript bi mi radio sortiranje izlaznih podataka prvo po T2.IDS1, pa onda po T2.IDS2, a na kraju po T2.IDS3

Ja želim da mi se pokaže prvo rezultat T2.IDS1 pa T2.IDS2 pa T2.IDS3

znači, rezultat u formi:

T1.ID T1.NAZIV gde je T1.ID=T2.IDS1
T1.ID T1.NAZIV gde je T1.ID=T2.IDS2
T1.ID T1.NAZIV gde je T1.ID=T2.IDS3
Re: SQL upit i sortiranje podataka 11.11.2009. u 03:45 · pre 206 meseci #6
> Savkićev skript bi mi radio sortiranje izlaznih podataka prvo po T2.IDS1, pa onda po T2.IDS2, a na kraju po T2.IDS3
> Ja želim da mi se pokaže prvo rezultat T2.IDS1 pa T2.IDS2 pa T2.IDS3

Želiš li prvo slogove koji odgovaraju IDS1 vrednostima pa onda IDS2 i na kraju IDS3? Pokušaj sa UNION (prilagodi primer tvojim tabelama).

SELECT ID, NAZIV FROM TABELA T1 WHERE T1.ID = 1
UNION ALL
SELECT ID, NAZIV FROM TABELA T1 WHERE T1.ID = 2
UNION ALL
SELECT ID, NAZIV FROM TABELA T1 WHERE T1.ID = 3
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme