Novo

Forum kao aplikacija na telefonu

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

  • 4 odgovora
  • 4.067 pregleda

Najnovija ↓

select iz iste tablice dva reda u trecu tablicu 27.05.2009. u 10:27 · pre 212 meseci #1
pozdrav.. napravio sam upit

Code:
select a.a, c.b1, d.b1 from a as a,b as c, b as d where 
c.id=a.id and
c.vr=a.vr and
d.id=a.id and
d.vr=a.vr-1;


dakle, zelim da iz tablice a uzmem sve stavke, a da na osnovu vrijednosti vr iz tablice b uzmem parametar b1, te da iz iste tablice uzmem parametar kada je vrijednost umanjena za 1...

upit mi pravi problem jer neke stavke iz tablice a izostavi, a nisam mogao dokuciti koja..mislim zbog cega mi ih izostavlja...

moze li mi neko pomoci na koji nacin da ovo najbezbolnije odradim..

hvala
Potpis
Give me six hours to chop down a tree and I will spend the first four sharpening the axe.
Re: select iz iste tablice dva reda u trecu tablicu 27.05.2009. u 10:38 · pre 212 meseci #2
Ovaj nečitljiv upit ne treba da vrati sve redove iz tabele "a" nego samo one za koje postoji u tabeli "b" slogovi sa istim "id" kao u tabeli "a" i to bar dva takva sloga od kojih bar jedan ima "vr" isti kao "vr" u "a" i bar jedan koji ima "vr" za jedan manje.

Ajde sada postavi pravo pitanje, šta je to što želiš da dobiješ. Da li ti je taj "vr" neki datum i šta je uopšte cilj upita...
Re: select iz iste tablice dva reda u trecu tablicu 27.05.2009. u 11:12 · pre 212 meseci #3
Citat:
upit mi pravi problem jer neke stavke iz tablice a izostavi, a nisam mogao dokuciti koja..mislim zbog cega mi ih izostavlja...


ideju nemam sta pokusavas da uradis ali ti ovo mozda pomogne (iz drugog posta):

Code:

mysql> SELECT k1.friendid, k2.friendid, k3.friendid FROM (SELECT t_friend.friendid FROM t_friend WHERE t_friend.userid=1) k1 JOIN t_friend k2 ON (k2.userid = k1.friendid) JOIN t_friend k3 ON (k3.userid = k2.friendid);
+----------+----------+----------+
| friendid | friendid | friendid |
+----------+----------+----------+
|        2 |        3 |        4 | 
|        2 |        3 |        7 | 
+----------+----------+----------+
2 rows in set (0.00 sec)

mysql> SELECT k1.friendid, k2.friendid, k3.friendid FROM (SELECT t_friend.friendid FROM t_friend WHERE t_friend.userid=1) k1 LEFT JOIN t_friend k2 ON (k2.userid = k1.friendid) LEFT JOIN t_friend k3 ON (k3.userid = k2.friendid);
+----------+----------+----------+
| friendid | friendid | friendid |
+----------+----------+----------+
|        2 |        3 |        4 | 
|        2 |        3 |        7 | 
|        2 |        5 |     NULL | 
|        2 |        6 |     NULL | 
|        3 |        4 |     NULL | 
|        3 |        7 |     NULL | 
|        5 |     NULL |     NULL | 
+----------+----------+----------+
7 rows in set (0.00 sec)


dakle obrati paznju izmedju standardnog (inner) join-a i LEFT jon-a gde ti u slucaju LEFT join-a upit vraca i vrednosti gde u drugoj tabeli nemas vrednost.

Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme