Pomoc przy pewnym zapytaniu
Raker - 29-04-2006 00:13
Pomoc przy pewnym zapytaniu
Witam serdecznie. Chcialem prosic o pomoc przy pewnym zapytaniu do bazy. Zakladamy ze mamy takie tabele: tabela user sklada sie z kolumn (id, imie, nazwisko) tabela book sklada sie z kolumn (id, user_id, autor, tytul)
i teraz chcialem wykonac takie zapytanie ktore: wybierze z bazy tych wszystkich userow ktorzy np. maja na imie 'Aneta' i maja dodana choc jedna pozycje w tabeli book (czyli user.id = book.user_id). Chodzi mi o wybranie wszystkich danych z tabeli user.
Gdy robilem tak: SELECT * FROM user t1, book t2 WHERE t1.id = t2.user_id AND t1.imie = 'Aneta' wtedy wystepowaly powtorzenia w wyniku tzn. user ktory mial kilka pozycji w tabeli book byl wyswietlany tyle samo razy [ile tych pozycji w niej mial :)], a ja chcialbym zeby tych powtorzen nie bylo czyli jesli ktos ma 5 ksiazek to w wyniku pojawia sie tylko 1 raz.
Domyslam sie ze jest to dosc prosta sprawa [dla Was], ja jednak mam pewne braki ;), ktore sobie uzupelniam przy takich wlasnie sytuacjach.
Dziekuje za pomoc Pozdrawiam
raker
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
=?iso-8859-2?Q?Andrzej_Str=F3=BFy=F1ski?= - 29-04-2006 00:14
Użytkownik "Raker" <rakerWYTNIJTO@poczta.onet.pl> napisał w wiadomości news:5124.00000026.4451bc0b@newsgate.onet.pl... > Witam serdecznie. > Chcialem prosic o pomoc przy pewnym zapytaniu do bazy. > Zakladamy ze mamy takie tabele: > tabela user sklada sie z kolumn (id, imie, nazwisko) > tabela book sklada sie z kolumn (id, user_id, autor, tytul) > > i teraz chcialem wykonac takie zapytanie ktore: > wybierze z bazy tych wszystkich userow ktorzy np. maja na imie 'Aneta' i > maja > dodana choc jedna pozycje w tabeli book (czyli user.id = book.user_id). > Chodzi > mi o wybranie wszystkich danych z tabeli user. > > Gdy robilem tak: > SELECT * FROM user t1, book t2 WHERE t1.id = t2.user_id AND t1.imie = > 'Aneta' > wtedy wystepowaly powtorzenia w wyniku tzn. user ktory mial kilka pozycji > w > tabeli book byl wyswietlany tyle samo razy [ile tych pozycji w niej mial > :)], a > ja chcialbym zeby tych powtorzen nie bylo czyli jesli ktos ma 5 ksiazek > to w > wyniku pojawia sie tylko 1 raz. > > Domyslam sie ze jest to dosc prosta sprawa [dla Was], ja jednak mam pewne > braki ;), ktore sobie uzupelniam przy takich wlasnie sytuacjach.
Może tak: SELECT t1.* FROM user t1, book t2 WHERE t1.id = t2.user_id AND t1.imie = 'Aneta' GROUP BY t1.id, t1.imie, t1.nazwisko
A.S.
Bastion - 01-05-2006 00:02
Użytkownik "Raker" <rakerWYTNIJTO@poczta.onet.pl> napisał w wiadomości news:5124.00000026.4451bc0b@newsgate.onet.pl...
> i teraz chcialem wykonac takie zapytanie ktore: > wybierze z bazy tych wszystkich userow ktorzy np. maja na imie 'Aneta' i maja > dodana choc jedna pozycje w tabeli book (czyli user.id = book.user_id). Chodzi > mi o wybranie wszystkich danych z tabeli user. > > SELECT * FROM user t1, book t2 WHERE t1.id = t2.user_id AND t1.imie = 'Aneta' > wtedy wystepowaly powtorzenia w wyniku tzn. user ktory mial kilka pozycji w > tabeli book byl wyswietlany tyle samo razy [ile tych pozycji w niej mial :)], a > ja chcialbym zeby tych powtorzen nie bylo czyli jesli ktos ma 5 ksiazek to w > wyniku pojawia sie tylko 1 raz.
Zobacz czy zadziala cos takiego: SELECT DISTINCT * FROM user t1, book t2 WHERE t1.id = t2.user_id AND t1.imie = 'Aneta'
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 01-05-2006 00:02
Bastion wrote: > Użytkownik "Raker" <rakerWYTNIJTO@poczta.onet.pl> napisał w wiadomości > news:5124.00000026.4451bc0b@newsgate.onet.pl... > > >>i teraz chcialem wykonac takie zapytanie ktore: >>wybierze z bazy tych wszystkich userow ktorzy np. maja na imie 'Aneta' i maja >>dodana choc jedna pozycje w tabeli book (czyli user.id = book.user_id). Chodzi >>mi o wybranie wszystkich danych z tabeli user. >> >>SELECT * FROM user t1, book t2 WHERE t1.id = t2.user_id AND t1.imie = 'Aneta' >>wtedy wystepowaly powtorzenia w wyniku tzn. user ktory mial kilka pozycji w >>tabeli book byl wyswietlany tyle samo razy [ile tych pozycji w niej mial :)], > > a > >>ja chcialbym zeby tych powtorzen nie bylo czyli jesli ktos ma 5 ksiazek to w >>wyniku pojawia sie tylko 1 raz. > > > Zobacz czy zadziala cos takiego: > SELECT DISTINCT * FROM user t1, book t2 WHERE t1.id = t2.user_id AND t1.imie = > 'Aneta'
To pewnie nic nie zmieni, ale jak zamienić * na t1.*, to już pewnie będzie to czego oczekiwał pytający.
-- P.M.
Bastion - 01-05-2006 00:02
Użytkownik "Paweł Matejski" <madej@spam.madej.pl.eu.org> napisał w wiadomości news:e32q8u$b10$1@inews.gazeta.pl... > > Zobacz czy zadziala cos takiego: > > SELECT DISTINCT * FROM user t1, book t2 WHERE t1.id = t2.user_id AND t1.imie = > > 'Aneta' > > To pewnie nic nie zmieni, ale jak zamienić * na t1.*, to już pewnie > będzie to czego oczekiwał pytający.
chyba masz racje.
Pozdrawiam
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
=?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?=
[ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?=
phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?=
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
[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?=
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
[mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?=
[MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?=
mecze sie i mecze i nic - zapytanie czesciowe
zanotowane.pldoc.pisz.plpdf.pisz.plown-team.pev.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 |
|