[ mojeKorIme @ 27.05.2009. 09:27 ] @
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
[ djoka_l @ 27.05.2009. 09:38 ] @
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...
[ bogdan.kecman @ 27.05.2009. 10:12 ] @
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.

[ bogdan.kecman @ 27.05.2009. 10:16 ] @
dakle taj tvoj upit bi trebao da bude:

Code:

SELECT a.a, c.b1, d.b1 FROM a LEFT JOIN b c ON (c.id = a.id and c.vr=a.vr) LEFT JOIN b d ON ( a.id=d.id and a.vr-1=d.vr);

[ mojeKorIme @ 27.05.2009. 14:00 ] @
LEFT JOIN je odradio posao hvala svima