=?ISO-8859-2?Q?zapytanie_w_sql,_pro=B6ba_o_sprawdzenie?=
kanguur - 30-01-2006 10:32
=?ISO-8859-2?Q?zapytanie_w_sql,_pro=B6ba_o_sprawdzenie?=
Mam bazę i w niej m.in tabele:
Studenci(student_id, imie, nazwisko, data_rejestracji, email); Jezyki (student_id, nazwa, znajomosc);
i teraz chce wybrac studentów, którzy znają języki na określonym poziomie. DAjmy na to angielski i hiszpański i znajomosc >=3.
SELECT s.student_id, s.imie, s.nazwisko, s.data_rejestracji, s.email from Studenci as s, Jezyki as j0, Jezyki as j1 WHERE s.student_id=j0.student_id and j0.nazwa_jezyka='angielski' and j0.znajomosc>=3 and s.student_id=j1.student_id and j1.nazwa_jezyka='hiszpanski' and j1.znajomosc>=3
Powyższe pytanie zwraca to czego oczekuję, ale może powinno wyglądać nieco prościej? Jeśli mógłby ktoś zerknąć, będę wździęczny. Baza na Mysql 4.
Pozdrawiam kanguur
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Sztacheta - 30-01-2006 10:32
kanguur wrote:
> Mam bazę i w niej m.in tabele: > > Studenci(student_id, imie, nazwisko, data_rejestracji, email); > Jezyki (student_id, nazwa, znajomosc); > > i teraz chce wybrac studentów, którzy znają języki na określonym poziomie. > DAjmy na to angielski i hiszpański i znajomosc >=3. > > SELECT s.student_id, s.imie, s.nazwisko, s.data_rejestracji, s.email from > Studenci as s, Jezyki as j0, Jezyki as j1 > WHERE s.student_id=j0.student_id and j0.nazwa_jezyka='angielski' and > j0.znajomosc>=3 and s.student_id=j1.student_id and > j1.nazwa_jezyka='hiszpanski' and j1.znajomosc>=3 > > Powyższe pytanie zwraca to czego oczekuję, ale może powinno wyglądać nieco > prościej? Jeśli mógłby ktoś zerknąć, będę wździęczny. > Baza na Mysql 4. > > Pozdrawiam > kanguur >
A moze tak:
select * from Studenci where student_id in ( select student_id from Jezyki where (znajomosc>=3 and nazwa='hiszpanski') or (znajomosc>=3 and nazwa='angielski') );
Filozof
kanguur - 30-01-2006 10:32
=?ISO-8859-2?Q?Re:_zapytanie_w_sql,_pro=B6ba_o_sprawdzenie?=
Sztacheta <elmorad2@wp.pl> napisał(a):
> A moze tak: > > select * from Studenci where student_id in > ( > select student_id from Jezyki where > (znajomosc>=3 and nazwa='hiszpanski') > and > (znajomosc>=3 and nazwa='angielski') > ); >
Faktycznie znacznie ładniej, ale jest jeden problem, mysql jest w wersji 3.23, co o ile się nie mylę pociąga za sobą brak możliwości podzapytań.
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
adamn26@poczta.onet.pl - 30-01-2006 10:32
> A moze tak: > > select * from Studenci where student_id in > ( > select student_id from Jezyki where > (znajomosc>=3 and nazwa='hiszpanski') > or > (znajomosc>=3 and nazwa='angielski') > ); >
A mozna tak? select * from Studenci where student_id in (select student_id from Jezyki where znajomosc>=3 and nazwa in ('hiszpanski','angielski'))
pozdrawiam
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
=?iso-8859-2?Q?Krzysztof_Jod=B3owski?= - 30-01-2006 10:32
> Baza na Mysql 4.
a w 2 i pół godziny później:
> Faktycznie znacznie ładniej, ale jest jeden problem, mysql jest w > wersji 3.23,
To się zdecyduj...
-- pozdrawiam Krzysztof Jodłowski http://www.wysylkowo.pl
kanguur - 03-02-2006 09:52
=?ISO-8859-2?Q?Re:_zapytanie_w_sql,_pro=B6ba_o_sprawdzenie?=
Krzysztof Jodłowski <bluelaser@poczta.onet.pl> napisał(a):
> > Baza na Mysql 4. > > a w 2 i pół godziny później: > > > Faktycznie znacznie ładniej, ale jest jeden problem, mysql jest w > > wersji 3.23, > > To się zdecyduj... > 4 mam w domu. Niestety na serwerze docelowym jest 3.23, więc pytanie musi być kompatybilne z tą wersją.
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 03-02-2006 09:52
kanguur wrote: > Sztacheta <elmorad2@wp.pl> napisał(a): > > >>A moze tak: >> >>select * from Studenci where student_id in >>( >>select student_id from Jezyki where >> (znajomosc>=3 and nazwa='hiszpanski') >>and >> (znajomosc>=3 and nazwa='angielski') >>); >> > > > Faktycznie znacznie ładniej, ale jest jeden problem, mysql jest w wersji 3.23, > co o ile się nie mylę pociąga za sobą brak możliwości podzapytań.
select distinct S.* from Studenci as S ,Jezyki where znajomosc>=3 and nazwa in ('hiszpanski','angielski')
-- P.M.
=?iso-8859-2?Q?Krzysztof_Jod=B3owski?= - 03-02-2006 09:52
> 4 mam w domu. Niestety na serwerze docelowym jest 3.23, więc pytanie > musi być kompatybilne z tą wersją.
To bez podzapytań i pozostaje chyba tylko Twoja wersja. Za bardzo nic się nie uprości. Ewentualnie można: SELECT s.* from...
-- pozdrawiam Krzysztof Jodłowski http://www.wysylkowo.pl
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
[oracle] - Oracle SQL Developer - co to jest SID?
MS Sql Server 2000 i Server 2003
[MS SQL + kontakty outlook]CZy kontakty moge być zewnętrzne?
[oracle] Baza danych do kursy Introduction to Oracle9i:PL/SQL ? Skąd ją pobrać ?
zanotowane.pldoc.pisz.plpdf.pisz.pladwokat.keep.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 |
|