ďťż
 
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?= ďťż
 
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=



kuba - 29-07-2007 00:00
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
  Witam,

*Background*
Mamy 6 tabel:
- tab_wojewodztwo (id_wojewodztwo, nazwa)
- tab_miasto (id_miasto, nazwa, id_wojewodztwo)
- tab_sklep (id_sklep, nazwa, id_miasto)
oraz
- newsletter (id_newsletter,tresc,id_wojewodztwo)
- kwerenda_newsletter_miasto (id_miasto,id_newsletter)
- kwerenda_newsletter_sklep (id_sklep,id_newsletter)

Każdy newsletter może być przypisany albo:
- do wojewodztwa (tylko wpis w tabeli newsletter)
- do miasta (wpis w tabeli newsletter i kwerenda_newsletter_miasto)
- do sklepu (wpis w tabeli newsletter i kwerenda_newsletter_sklep)

*Problem*
Ppobranie w jednym zapytaniu Dla danego newslettera, niezeleżnie od jego
przypisania (województwo,miasto,sklep), listy parametrów id_sklep.

*Algorytm*
Czy sklep jest przypisany do newslettera?
Jeśli tak: pobierz przypisane sklepy.
Jeśli nie:
Czy miasto jest przypisane do newslettera?
Jeśli tak: pobierz sklepy należące do miasta.
Jeśli nie: pobierz sklepy, których miasto należy do województwa

Teoretycznie można to łatwo zrealizować, MySQL posiada przecież
konstrukcje SELECT IF(war,tak,nie); Problem w tym jednak, że "tak" i
"nie" to podzapytania, a te mogą zwracać jedynie jeden rząd wyników.
Zatem gdy w algorytmie słowo "pobierz" zamienimy na "zlicz" sprawa jest
niemalże trywialna. Co jednak zrobić, kiedy chodzi nam o pobranie a nie
policzenie?

Przyszedł mi pomysł na obejście tego problemu jednak ma ono pewną wadę.

*Obejście*
Podczas tworzenia newslettra przypiasanego wyżej niż poziom sklepów,
należy jawnie wpisywać też id_sklepów, czyli:

Każdy newsletter może być przypisany albo:
- do wojewodztwa (tylko wpis w tabeli newsletter
*i kwerenda_newsletter_sklep*)
- do miasta (wpis w tabeli newsletter i kwerenda_newsletter_miast
*i kwerenda_newsletter_sklep*)
- do sklepu (wpis w tabeli newsletter i kwerenda_newsletter_sklep)

*Wada obejścia*
W sytuacji kiedy mamy newsletter przypisany do wojewodztwa (i pośrednio
dalej do miast i skelpów) przypisanie nowego sklepu do miasta wymaga
recznego uzupełnienia tabel kwerend.

Ma ktoś może pomysł na realizację takiego zapytania? wzglednie może
propozycje zamiany bazy, lub też pomysł na inne ciekawe, pozbawione tej
wady obejście?

Pozdrawiam,
Jakub





=?UTF-8?B?RmlsaXAgUmVtYmlhxYJrb3dza2k=?= - 31-07-2007 00:01

  kuba wrote at 28 VII 2007 12:48:
> Witam,
>
> *Background*
> Mamy 6 tabel:
> - tab_wojewodztwo (id_wojewodztwo, nazwa)
> - tab_miasto (id_miasto, nazwa, id_wojewodztwo)
> - tab_sklep (id_sklep, nazwa, id_miasto)
> oraz
> - newsletter (id_newsletter,tresc,id_wojewodztwo)
> - kwerenda_newsletter_miasto (id_miasto,id_newsletter)
> - kwerenda_newsletter_sklep (id_sklep,id_newsletter)
>
> Każdy newsletter może być przypisany albo:
> - do wojewodztwa (tylko wpis w tabeli newsletter)
> - do miasta (wpis w tabeli newsletter i kwerenda_newsletter_miasto)
> - do sklepu (wpis w tabeli newsletter i kwerenda_newsletter_sklep)
>
> *Problem*
> Ppobranie w jednym zapytaniu Dla danego newslettera, niezeleżnie od jego
> przypisania (województwo,miasto,sklep), listy parametrów id_sklep.

<lista ID sklepów wg tabeli kwerenda_newsletter_sklep>
UNION
<lista ID sklepów wg JOINA z tabelą tab_miasto>
UNION
<lista ID sklepów wg JOINA z tabelą tab_wojewodztwo>
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Gdzie MySQL 4.1, a gdzie 5.0? [MS SQL] "set names" (mySQL) w MS SQL oracle -> oracle lub oracle -> mysql replikacja - programy [MySQL] Zwrot tego, co pasuje i nie pasuje :-/ [pgsql] Dostosowanie składni MySQL 5.0 -> PGSQL 8.1 [mysql] galeria zdjec - numerowanie zdjec [mysql] CONCAT agregujący, ale nie GROUP_CONCAT() mysql data 0000-00-00 na koniec [MySQL] Problem z zapisem danych w bazie danych jak przenieesc czesc tabeli do innej tabeli MySQL
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • anette.xlx.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com