skromna prosba w pomocy zbudowania zapytania dla MySQL 4.0
gregor - 20-04-2006 02:19
skromna prosba w pomocy zbudowania zapytania dla MySQL 4.0
Witam
Chce ulozyc zapytanie z 3 tabel
z 1 pobieram srodek transportu dla danej oferty np. autobus z 2 pobieram ile miejsc liczy dany sr. transortu autobus ma 51
teraz w 3 mam juz kilka zajetych miejsc, jest to umowa, no i w koncu chce sprawdzic jakie sa jeszcze wolne miejsca z tych 51, ktore z tych z umowy sa zajete a ktore wolne :)
chce to podpiac pod PHP (napisalem skrypt ale zawolno dziala)
dzieki gregor
William - 21-04-2006 00:27
> > Chce ulozyc zapytanie z 3 tabel > > > > z 1 pobieram srodek transportu dla danej oferty np. autobus > > z 2 pobieram ile miejsc liczy dany sr. transortu autobus ma 51 > > > > teraz w 3 mam juz kilka zajetych miejsc, jest to umowa, no i w koncu > > chce sprawdzic jakie sa jeszcze wolne miejsca z tych 51, ktore z tych z > > umowy sa zajete a ktore wolne :) > >
Pomysl przez chwilkę, czy ten model tabel odzwierciedla życiowe relacje tego problemu.
IMHO masz takie zjawiska jak:
a) Autokary (czyli jego numer, ilość miejsc itd.) b) Masz kursy autobusów (dzień, trasa, numer autobusu który pojedzie itd.) c) Dla każdego z kursów dostępna jest pewna ilość miejsc d) Zawierane są pewne umowy na przewóz e) Umowy te zajmują pewną ilosć miejsc w kursach.
Kluczowa jest zatem tabela "miejsca w kursie" która powinna zawierać id_kursu autokaru, numer_miesjca oraz id_umowy. Trzecia kolumna z dopuszczonym nullem, klucz głównym na dwóch pierwszych. Teraz wstawiając do tabeli "kursy" nowy kurs jednocześniej wstawiasz do tabeli "miejsca w kursie" N rekordów opisujacych miejsca w tym kursie (N jest liczbą miejsc w autobusie). W momencie rezerwowania miejsca przez umowe w tabeli "miejsca_w_kursie" wpisujesz id_umowy w miejsce nulla na rezerwowanym miejscu. W każdej chwili ilość wolnych miejsc w kursie oraz ilość miejsc w umowie obliczas bardzo prostym countem
gonzak@op.pl - 21-04-2006 00:28
Użytkownik William <nie@ma.mnie.pl> napisał: >> > Chce ulozyc zapytanie z 3 tabel >> > >> > z 1 pobieram srodek transportu dla danej oferty np. autobus >> > z 2 pobieram ile miejsc liczy dany sr. transortu autobus ma 51 >> > >> > teraz w 3 mam juz kilka zajetych miejsc, jest to umowa, no i w koncu >> > chce sprawdzic jakie sa jeszcze wolne miejsca z tych 51, ktore z tych z >> > umowy sa zajete a ktore wolne :) >> > > >Pomysl przez chwilkę, czy ten model tabel odzwierciedla życiowe relacje tego >problemu. > > >IMHO masz takie zjawiska jak: > >a) Autokary (czyli jego numer, ilość miejsc itd.) >b) Masz kursy autobusów (dzień, trasa, numer autobusu który pojedzie itd.) >c) Dla każdego z kursów dostępna jest pewna ilość miejsc >d) Zawierane są pewne umowy na przewóz >e) Umowy te zajmują pewną ilosć miejsc w kursach. > >Kluczowa jest zatem tabela "miejsca w kursie" która powinna zawierać
strukture tabelek masz? -- Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych
Ronald Kuczek - 21-04-2006 00:28
> chce to podpiac pod PHP (napisalem skrypt ale zawolno dziala)
Rodzaj silnika, strukturę tabel i zapytania pokazać nam musisz. Ciężko coś z fusów wywróżyć będzie.
Pozdrawiam Rony
William - 22-04-2006 00:12
> strukture tabelek masz? > --
Trochę nie rozumiem pytania....
Rafalsxat - 22-04-2006 00:12
[OT] Re: skromna prosba w pomocy zbudowania zapytania dla MySQL 4.0
> Rodzaj silnika, strukturę tabel i zapytania pokazać nam musisz. Ciężko coś > z fusów wywróżyć będzie. > > Pozdrawiam > Rony >
hehe wyglada ze to tajemna wiedza :)
-- Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych
Noel - 22-04-2006 00:12
Użytkownik gregor napisał: > Witam > > Chce ulozyc zapytanie z 3 tabel > > z 1 pobieram srodek transportu dla danej oferty np. autobus > z 2 pobieram ile miejsc liczy dany sr. transortu autobus ma 51 > > teraz w 3 mam juz kilka zajetych miejsc, jest to umowa, no i w koncu > chce sprawdzic jakie sa jeszcze wolne miejsca z tych 51, ktore z tych z > umowy sa zajete a ktore wolne :) > > chce to podpiac pod PHP (napisalem skrypt ale zawolno dziala) > > dzieki > gregor
Autobusy(id) Dane_Techniczne(autobus_id, ilosc_wolnych_miejsc); Umowa(id, autobus_id, ilosc_miejsc_zarezerwowanych);
SELECT a.id, d.ilosc_wolnych_miejsc - sum(ilosc_miejsc_zerezerwowanych) wolne_miejsca FROM autobusy a, dane_techniczne d, umowa u WHERE a.id = d.autobus_id AND u.autobus_id = a.id AND a.id = 1 GROUP BY a.id, d.ilosc_wolnych_miejsc;
-- Tomek "Noel" B.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
zanotowane.pldoc.pisz.plpdf.pisz.plquentinho.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|