banalne zapytanie SQL ?
::Marcin:: - 24-12-2006 00:38
banalne zapytanie SQL ?
Witam,
napewno naraze sie na krytyke bo i rozwiazanie pewnie jest banalne ale sie skrecilem i nie moge sobie poradzic z takim zapytaniem:
mam takie tabele tab1(id, nazwa) tab2(id, numer, nazwa) w tab2 pole nazwa jest kluczem odcym do pola nazwa z tab1
Jakie zapytanie wyswietli rekordy z tab1 ktore nie sa powiazane (nie naleza) do tab2 ?
Pozdro...
- 24-12-2006 00:38
::Marcin:: napisał(a): > Witam, > > napewno naraze sie na krytyke bo i rozwiazanie pewnie jest banalne ale sie > skrecilem i nie moge > sobie poradzic z takim zapytaniem: > > mam takie tabele > tab1(id, nazwa) > tab2(id, numer, nazwa) > w tab2 pole nazwa jest kluczem odcym do pola nazwa z tab1 > > Jakie zapytanie wyswietli rekordy z tab1 ktore nie sa powiazane (nie naleza) > do tab2 ? > > Pozdro... > >
select * from ( select p.id as id_tab1, p.nazwa, s.id as id_tab2 from tab1 p left outer join tab2 s on p.nazwa = s.nazwa) as t where id_tab2 is null
pisalem z glowy wiec moze gdzies byc blad.
pozdro i wesolych.
Michał Kuratczyk - 24-12-2006 00:38
::Marcin:: wrote: > mam takie tabele > tab1(id, nazwa) > tab2(id, numer, nazwa) > w tab2 pole nazwa jest kluczem odcym do pola nazwa z tab1 Dlaczego do TAB1.NAZWA, a nie do TAB1.ID? Jeśli NAZWA jest kluczem głównym, to po co Ci kolumna ID?
-- Michał Kuratczyk
Herakles - 24-12-2006 00:38
::Marcin:: wrote:
> Witam, > > napewno naraze sie na krytyke bo i rozwiazanie pewnie jest banalne ale sie > skrecilem i nie moge > sobie poradzic z takim zapytaniem: > > mam takie tabele > tab1(id, nazwa) > tab2(id, numer, nazwa) > w tab2 pole nazwa jest kluczem odcym do pola nazwa z tab1 > > Jakie zapytanie wyswietli rekordy z tab1 ktore nie sa powiazane (nie > naleza) do tab2 ? > > Pozdro...
1) select distinct tab1.* from tab1 inner join tab2 .... 2) select distinct tab1.* from tab1 left join join tab2 .... where tab2.cos is null 3) select tab1.* from tab1 where tab1.tab2_id not in (select tab2.tab2_id from tab2);
Herakles - 24-12-2006 00:38
Herakles wrote:
> ::Marcin:: wrote: > >> Witam, >> >> napewno naraze sie na krytyke bo i rozwiazanie pewnie jest banalne ale >> sie skrecilem i nie moge >> sobie poradzic z takim zapytaniem: >> >> mam takie tabele >> tab1(id, nazwa) >> tab2(id, numer, nazwa) >> w tab2 pole nazwa jest kluczem odcym do pola nazwa z tab1 >> >> Jakie zapytanie wyswietli rekordy z tab1 ktore nie sa powiazane (nie >> naleza) do tab2 ? >> >> Pozdro... > > 1) select distinct tab1.* from tab1 inner join tab2 .... > 2) select distinct tab1.* from tab1 left join join tab2 .... where > tab2.cos is null > 3) select tab1.* from tab1 where tab1.tab2_id not in (select tab2.tab2_id > from tab2);
4) select tab1.* from tab1 inner join tab2 .... group by tab1.* having count(tab2.tab1_id)<1;
Aga - 24-12-2006 00:38
> mam takie tabele > tab1(id, nazwa) > tab2(id, numer, nazwa) > w tab2 pole nazwa jest kluczem odcym do pola nazwa z tab1
select * from tab1 where not exists(select id from tab2 where nazwa=tab1.nazwa)
Tylko pytanie, dlaczego w tab2 kluczem obcym nie jest odnosnik do pola id w tabeli tab2?
JC
::Marcin:: - 27-12-2006 00:11
Dzieki wszystkim za odpowiedz zycze wszytkim szczesliwego Nowego Roku. > Tylko pytanie, dlaczego w tab2 kluczem obcym nie jest odnosnik do pola > id w tabeli tab2? oczywiscie ze jest tylko z pospiechu sie walnolem niestety :-( podobno mozna te dane wyluskac za pomoca group by lub heaving niestety mnie sie to nie udalo
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
=?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
[newbie] MS SQL - praca =?ISO-8859-2?Q?jednocze=B6nie_na_2_?==?ISO-8859-2?Q?bazach_=28linkowanie_=3F=29?=
zanotowane.pldoc.pisz.plpdf.pisz.plwawa19wwa91.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 |
|