Łączenie tylko kilku kolumn z większych tabel
floran - 28-06-2006 00:08
Łączenie tylko kilku kolumn z większych tabel
Witam
Mam pytanie, jak złączyć tylko wybrane kolumny z kilku wielkich tabel (zawierających po kilkanaście kolumn) a później na nich wykonać zapytanie ? Czy jest taka możliwość czy tylko całe tabele można łączyć ze sobą ?
pozdrawiam
Brzezi - 28-06-2006 00:08
wto, 27 cze 2006 o 07:52 GMT, floran napisał(a):
> Czy jest taka możliwość czy tylko całe tabele można łączyć ze sobą ?
a czy jest mozliwosc pobrania tylko wybranych kolumn z jednej tabeli czy trzeba wszystkie poberac naraz? bosz....
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ o komiku : ] [ Ekg: #3781111 ][ Oko mi kur.. wybili ! (zalosnie) ] [ LinuxUser: #249916 ][ ]
=?ISO-8859-2?Q?Cezary_Gr=B1dys?= - 28-06-2006 00:08
floran napisał(a): > Witam > > Mam pytanie, jak złączyć tylko wybrane kolumny z kilku wielkich tabel > (zawierających po kilkanaście kolumn) a później na nich wykonać zapytanie ? > Czy jest taka możliwość czy tylko całe tabele można łączyć ze sobą ? > > pozdrawiam > >
W postgresie zadziała coś takiego:
select * from (select id,pole1 from a) X join (select id,pole2 from b) Y ON X.id=Y.id;
-- Czarek
floran - 28-06-2006 00:08
> W postgresie zadziała coś takiego: > > select * from > (select id,pole1 from a) X > join > (select id,pole2 from b) Y ON X.id=Y.id;
Chodzi o firebird
Brzezi - 28-06-2006 00:09
wto, 27 cze 2006 o 09:06 GMT, Cezary Grądys napisał(a):
> select * from > (select id,pole1 from a) X > join > (select id,pole2 from b) Y ON X.id=Y.id;
ale po co podzapytania?
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ Cropp's Law: ] [ Ekg: #3781111 ][ The amount of work done varies ] [ LinuxUser: #249916 ][ inversly with the time spent in the ] [ office. ]
Migat - 28-06-2006 00:09
=?iso-8859-2?q?Re:_=A3=B1czenie_tylko_kilku_kolumn_z_wi=EAksz ych_tabel?=
Cezary Grądys wrote: > select * from > (select id,pole1 from a) X > join > (select id,pole2 from b) Y ON X.id=Y.id;
To cos (jezeli zadziala) i tak bedzie dzialolo tak samo jak: select a.id,b.id,pole1,pole2 from a join b on a.id = b.id; (pomijajac ze b.id nie powinno byc wogole wyciagane).
Nie zapominajcie, ze SQL to nie C tylko jezyk deklaratywny i optymalizacja zapytan SQL'owych w taki sposob nie ma sensu bo i tak pozniej sa one optymalizowane na nizszej warstwie. Moim zdaniem nie ma sensu wybierac kolumn do zlaczenia - teoretycznie ilosc danych w zlaczeniu i czas jego wykonywania bedzie zalezny od ilosci pol ale w praktyce tak nie jest, poniewaz baza analizujac zapytanie najpierw analizuje liste pol, a nie jak w teoretycznym podejsciu tworzy iloczyn kartezjanski.
Pzdr PawelB
=?ISO-8859-2?Q?Cezary_Gr=B1dys?= - 30-06-2006 00:07
Migat napisał(a): > Cezary Grądys wrote: > >>select * from >>(select id,pole1 from a) X >>join >>(select id,pole2 from b) Y ON X.id=Y.id; > > > To cos (jezeli zadziala) i tak bedzie dzialolo tak samo jak: > select a.id,b.id,pole1,pole2 from a join b on a.id = b.id; > (pomijajac ze b.id nie powinno byc wogole wyciagane). > > Nie zapominajcie, ze SQL to nie C tylko jezyk deklaratywny i > optymalizacja zapytan SQL'owych w taki sposob nie ma sensu bo i tak > pozniej sa one optymalizowane na nizszej warstwie. > Moim zdaniem nie ma sensu wybierac kolumn do zlaczenia - teoretycznie > ilosc danych w zlaczeniu i czas jego wykonywania bedzie zalezny od > ilosci pol ale w praktyce tak nie jest, poniewaz baza analizujac > zapytanie najpierw analizuje liste pol, a nie jak w teoretycznym > podejsciu tworzy iloczyn kartezjanski. > > Pzdr PawelB > No jasne, ale pytanie brzmiało: 'jak złączyć tylko wybrane kolumny z kilku wielkich tabel (zawierających po kilkanaście kolumn) a później na nich wykonać zapytanie ? ' Nie wiadomo czy chodziło o optymalizację, czy coś innego (np ciekawość czy tak można) Faktycznie lepiej dać te kolumny zamiast * w select, a reszte pozostawić bazie.
-- Czarek
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[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?=
[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] Wyszukanie =?ISO-8859-2?Q?rekord=F3w=28powiazane_tabel?==?ISO-8859-2?Q?e=29?=
[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?=
zapytanie do =?ISO-8859-2?Q?dw=F3ch_tabel_z_limitem_wier?==?ISO-8859-2?Q?szy?=
Jak =?ISO-8859-2?Q?zamieni=E6_dwa_pola_jednej_kolumny_?==?ISO-8859-2?Q?w_dw=F3ch_rekordach_za_pomoc=B1_jednego_zapyt? ==?ISO-8859-2?Q?ania=3F?=
ms sql server - =?ISO-8859-2?Q?domy=B6lny_format_kolumn_ty?==?ISO-8859-2?Q?pu_datetime?=
[ORACLE] Dodanie kolumny typu BLOB - =?ISO-8859-2?Q?wp=B3yw_na?==?ISO-8859-2?Q?_wydajno=B6c?=
Zapytanie SQL z =?ISO-8859-2?Q?pust=B1_tabel=B1?=
[MySQL] Backup tabel przez "BACKUP" i problem z prawami dostępu :(
zanotowane.pldoc.pisz.plpdf.pisz.plquentinho.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 |
|