[ define @ 18.03.2006. 10:45 ] @
Imam jednu tabelu gde se nalaze automobili primera radi izgleda ovako
(auto)
+-------------------+--------+
| model | autoid |
+-------------------+--------+
| Golf | 1 |
+-------------------+--------+

druga tabela je sa karakteristikama

+-------+-----------------+
| karid | naziv |
+-------+-----------------+
| 1 | ABS |
| 2 | Air bag |
| 3 | Alu felne |
+-------+-----------------+

treca je mesto gde se unosi id od katakteristika i id automobila
(autokar)
+-----------+-------+--------+
| autokarid | karid | autoid |
+-----------+-------+--------+
| 1 | 1 | 1 |
| 2 | 2 | 1 |
| 3 | 3 | 1 |
+-----------+-------+--------+

Ono sto je meni bitno je da vidim da li postoji neki nacin da povezem tabelu automobila i ove zadnje tabele po autoid-u, ali ono sto mi je bitno je da se to izvrsi u jendom kveriju. Cini mi se da u Accessu ima opcija da mogu da izvrsim rotiranje ove druge tabele tako da ovi elementi iz kolone autokarid mogu postati polja (1,2,3) koja bih mogao da povezem sa tabelom auto tako da dobijem novu tabelu koja bi izgledala

autoid,model,1,2,3
u zavisnosti od toga koliko ima karakteristika za pojedini automobil, tako da bi mozda neki drugi automobil imao
autoid,model,1 ili autoid,model,2,3
Da li je ovo moguce?
[ SmilieBG @ 18.03.2006. 14:03 ] @
moguce je :)

Samo je prvo pitanje, imas li i ostalih tabela?

U principu, autoid je osnova. I dokle god imas autoid u i drugim tabelama (karakteristike, motor, boja, godiste), mozes da povezujes...

Code:

select * from auto a, karakteristike k, motor m where a.id = 1 and a.id = k.autoid and a.id = m.autoid;


Poz,
Sale
[ define @ 18.03.2006. 14:17 ] @
Nismo se razumeli...
razumem ja kako da povezem tabele na taj nacin, ali je ovde fora sto ima vise redova u kojima je autoid=1
[ SmilieBG @ 18.03.2006. 18:35 ] @
Ah, razumem...

Moras da radis sa HAVING u MySQL-u... Ali nisam siguran kako sintaksa ide...

Uglavnom, query 'zvuci' = izaberi sve, gde karateristike imaju autoid = 1...

Poz,
Sale

[Ovu poruku je menjao SmilieBG dana 18.03.2006. u 19:37 GMT+1]
[ Dejan Vesic @ 21.03.2006. 20:45 ] @
Citat:
define:
Cini mi se da u Accessu ima opcija da mogu da izvrsim rotiranje ove druge tabele tako da ovi elementi iz kolone autokarid mogu postati polja (1,2,3) koja bih mogao da povezem sa tabelom auto tako da dobijem novu tabelu koja bi izgledala

autoid,model,1,2,3
u zavisnosti od toga koliko ima karakteristika za pojedini automobil, tako da bi mozda neki drugi automobil imao
autoid,model,1 ili autoid,model,2,3
Da li je ovo moguce?


Moguće je ali nije lepo;

- pretpostavimo da je broj karateristika UNAPRED poznat (od 1 do N)

Onda bi jedan ovakav upit sa podupitima sredio stvar (ali ružno!)

Code:

Select a.AutoID, a.Model,
(Select k.Naziv from kar k, autokar ak where ak.karid = 1 and ak.karid = k.karid and ak.autoid = a.autoid) as K1, 
(Select k.Naziv from kar k, autokar ak where ak.karid = 2 and ak.karid = k.karid and ak.autoid = a.autoid) as K2, 
...
(Select k.Naziv from kar k, autokar ak where ak.karid = n and ak.karid = k.karid and ak.autoid = a.autoid) as Kn 
From Auto a


Ovakav upit će uvek imati fiksan broj kolona; na mestima gde karakteristika postoji, pojaviće se naziv karakteristike; ako ne postoji, pojaviće se NULL kao rezultat.

Rekoh li da nije lepo ...