ďťż
 
[Mysql] zapytanie proste ? ďťż
 
[Mysql] zapytanie proste ?
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] zapytanie proste ?



BM - 17-06-2006 00:32
[Mysql] zapytanie proste ?
  Witam serdecznie,

Niby problem wydaje sie prosty ale ja juz sie poddalem. Moze Wam sie uda
wpasc na rozwiazanie - a moze nie ma rozwiazania.

Mam tabele:

------dyzury--------------
| ID | PRACO | DZIEN |
| 1 | 1 | pon |
| 2 | 1 | sro |
| 3 | 1 | sob |
| 4 | 2 | pon |
| 5 | 2 | pia |
| 6 | 3 | pon |
| 7 | 3 | sob |

Probuje wymyslic zapytanie ktore zwroci mi numery pracownikow (PRACO) ktorzy
maja dyzury w poniedzialki (DZIEN = pon) i w soboty (DZIEN = sob)
Czyli w tym konkretnym przypadku jako wynik powinienem otrzymac 1 i 3

Jest to tylko przyklad "wiekszego" problemu takze tych warunkow (DZIEN =
costam) moze byc o wiele wiecej.

Bardzo wazne ograniczenie - nie mozna korzystac z podzapytan.

Pozdrawiam





BM - 17-06-2006 00:32

  > ------dyzury--------------
> | ID | PRACO | DZIEN |
> | 1 | 1 | pon |
> | 2 | 1 | sro |
> | 3 | 1 | sob |
> | 4 | 2 | pon |
> | 5 | 2 | pia |
> | 6 | 3 | pon |
> | 7 | 3 | sob |
>
> Probuje wymyslic zapytanie ktore zwroci mi numery pracownikow (PRACO)
> ktorzy maja dyzury w poniedzialki (DZIEN = pon) i w soboty (DZIEN = sob)
> Czyli w tym konkretnym przypadku jako wynik powinienem otrzymac 1 i 3

No dobrze - z tym konkretnym przypadkiem udalo mi sie:

select * from dyzury d , dyzury d1
where d.dzien = 'pon' and d1.dzien = 'sob' and d.praco = d1.praco

Ale co jesli bede chcial wyswietlic wszystkich pracownikow ktorzy maja
dyzury w pon, wto, srod, czw, pia ?
Bedzie trzeba zrobi 5 zlaczen tej samej tabeli - chyba nie jest to optymalne
rozwiazanie.

Pozdrawiam




Rafal sxat - 17-06-2006 00:32

  > Ale co jesli bede chcial wyswietlic wszystkich pracownikow ktorzy maja
> dyzury w pon, wto, srod, czw, pia ?

proponuje bazowac na datach i wtedy nie bedziesz mial z tym najmniejszych
problemow

pozdr
raf

--
Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych




BM - 17-06-2006 00:32

  > proponuje bazowac na datach i wtedy nie bedziesz mial z tym najmniejszych
> problemow

Ta tabelka to jest tylko przyklad wiekszego problemu - ta kolumna gdzie sa
dni tygodnia w rzeczywistosci przechowuje INTy ktore stanowia referencje
znowu do innej tabelki. Ale to nie istotne. Zastanawiam sie jak bedzie sie
zachowywalo zlaczenie (tej samej tabeli kilkakrotnie) ktore stworzylem
powyzej jezeli tabela dyzury sie "rozrosnie" ?

Pozdrawiam





hubert depesz lubaczewski - 17-06-2006 00:32

  On 2006-06-16, BM <bartek_m@poczta.fm> wrote:
> No dobrze - z tym konkretnym przypadkiem udalo mi sie:

ostatnio o tym pisałem. co prawda ja piszę w oparciu o postgresa, ale
powinno ci też zadziałać pod mysql'em.
jeden scan tabeli i masz dane.
opis:
http://www.depesz.com/index.php/2006...na-lista-cech/

depesz

--
http://www.depesz.com/ - nowy, lepszy depesz




=?ISO-8859-2?Q?Pawe=B3_Chalacis?= - 17-06-2006 00:32

  On 2006-06-16 16:56:08 +0200, "BM" <bartek_m@poczta.fm> said:

> Jest to tylko przyklad "wiekszego" problemu takze tych warunkow (DZIEN
> = costam) moze byc o wiele wiecej.

SELECT praco, count(praco) FROM dyzury where dzien in('pon', 'sro',
'sob') group by praco having count(praco) = 3

gdzie 3 to liczba dni uzytych w IN

--
Paweł Chalacis . . . . . . . . . . . . . . . . . . . . . ale o co chodzi?
praca . . . . . . . . . . . . . . . . . . . . . . . . http://punktg.com.pl
poza praca . . . . . . . . . . . . . . . . . . http://grek.punktg.com.pl
auto reklama . . . . . . . . . . . . . . . . . . . . http://supersklep.pl




BM - 18-06-2006 00:44

  > SELECT praco, count(praco) FROM dyzury where dzien in('pon', 'sro', 'sob')
> group by praco having count(praco) = 3
>
> gdzie 3 to liczba dni uzytych w IN

Wlasnie o to chodzilo ! za co pieknie dziekuje.

> Paweł Chalacis . . . . . . . . . . . . . . . . . . . . . ale o co chodzi?

Pozdrawiam
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • chinska-zupka.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com