Jak wyswietlic dane z dwoch tabel gdy dla jednej z nich jest brak jest danej wartosci
Darek - 30-09-2007 00:00
Jak wyswietlic dane z dwoch tabel gdy dla jednej z nich jest brak jest danej wartosci
Mam pytanie jak zadać zapytanie do dwóch tabel tak by zapytanie wyświetliło również informacje z drugiej tabeli jeśli tylko sa w niej odpowiednie dane. W innym przypadku, zeby dla pola, w ktorym jest wyswietlane bylo "".
Zrobiłem zapytanie jak poniższe
SELECT kol.k_id, kol.k_portal_id, kol.k_pagx_id, kol.k_kolumn_id, por.p_nomo FROM kol_table AS kol, por_table AS por WHERE por.p_numero = kol.k_portal_id ORDER BY kol.k_id DESC
Ale nie wyświetla nic jeśli por.p_numer nie istnieje :( Jak to można zrobić poprawnie?
Haueck - 30-09-2007 00:00
On 29 Wrz, 12:27, "Darek" <joj...@gazeta.pl> wrote: > Mam pytanie jak zadać zapytanie do dwóch tabel tak by zapytanie wyświetliło > również informacje z drugiej tabeli jeśli tylko sa w niej odpowiednie dane. > W innym przypadku, zeby dla pola, w ktorym jest wyswietlane bylo "". > > Zrobiłem zapytanie jak poniższe > > SELECT kol.k_id, kol.k_portal_id, kol.k_pagx_id, kol.k_kolumn_id, > por.p_nomo > FROM kol_table AS kol, por_table AS por > WHERE por.p_numero = kol.k_portal_id
Zakładam, że tu miało być por.p_nomo
> ORDER BY kol.k_id > DESC > > Ale nie wyświetla nic jeśli por.p_numer nie istnieje :( > Jak to można zrobić poprawnie?
Przy powyższym układzie proponuję zastosować lewe złączenie zewnętrzne. Wtedy wyrzuci wszystkie rekordy z lewej tabeli i każde pasujące z prawej. Kod przedstawia się jak poniżej:
SELECT kol.k_id, kol.k_portal_id, kol.k_pagx_id, kol.k_kolumn_id, por.p_nomo FROM dbo.kol_table AS kol LEFT OUTER JOIN dbo.por_table AS por ON kol.k_portal_id = por.p_nomo ORDER BY kol.k_id
Mam nadzieję, że pomoże. DESC
Haueck - 30-09-2007 00:00
On 29 Wrz, 12:27, "Darek" <joj...@gazeta.pl> wrote: > Mam pytanie jak zadać zapytanie do dwóch tabel tak by zapytanie wyświetliło > również informacje z drugiej tabeli jeśli tylko sa w niej odpowiednie dane. > W innym przypadku, zeby dla pola, w ktorym jest wyswietlane bylo "". > > Zrobiłem zapytanie jak poniższe > > SELECT kol.k_id, kol.k_portal_id, kol.k_pagx_id, kol.k_kolumn_id, > por.p_nomo > FROM kol_table AS kol, por_table AS por > WHERE por.p_numero = kol.k_portal_id
Zakładam, że tu miało być por.p_nomo
> ORDER BY kol.k_id > DESC > > Ale nie wyświetla nic jeśli por.p_numer nie istnieje :( > Jak to można zrobić poprawnie?
Przy powyższym układzie proponuję zastosować lewe złączenie zewnętrzne. Wtedy wyrzuci wszystkie rekordy z lewej tabeli i każde pasujące z prawej. Kod przedstawia się jak poniżej:
SELECT kol.k_id, kol.k_portal_id, kol.k_pagx_id, kol.k_kolumn_id, por.p_nomo FROM dbo.kol_table AS kol LEFT OUTER JOIN dbo.por_table AS por ON kol.k_portal_id = por.p_nomo ORDER BY kol.k_id DESC
Mam nadzieję, że pomoże.
Jo - 02-10-2007 00:01
SELECT kol.k_id, kol.k_portal_id, kol.k_pagx_id, kol.k_kolumn_id, por.p_nomo FROM dbo.kol_table AS kol LEFT OUTER JOIN dbo.por_table AS por ON kol.k_portal_id = por.p_nomo ORDER BY kol.k_id DESC
A po co dbo. ?
Haueck - 02-10-2007 00:01
On 1 Paź, 11:42, "Jo" <J...@oo.pl> wrote:
> A po co dbo. ?
No fakt, niepotrzebne. Przekleiłem kod prosto z MS SQL Servera, gdzie chciałem sprawdzić czy ten sposób zadziała ;)
Haueck - 02-10-2007 00:01
On 1 Paź, 11:42, "Jo" <J...@oo.pl> wrote:
> A po co dbo. ?
No fakt, niepotrzebne. Po prostu przekleiłem kod wprost z MS SQL Servera, gdzie chciałem sprawdzić czy ten sposób zadziała.
Grzegorz Gruza - 03-10-2007 00:01
[OT]Re: Jak wyswietlic dane z dwoch tabel gdy dla jednej z nich jestbrak jest danej wartosci
Haueck pisze: > On 1 Paź, 11:42, "Jo" <J...@oo.pl> wrote: > >> A po co dbo. ? > > No fakt, niepotrzebne. Po prostu przekleiłem kod wprost z MS SQL > Servera, gdzie chciałem sprawdzić czy ten sposób zadziała. > "SQL Server Best Practices Analyzer" kiedyś ostrzegał przed niepodawaniem nazwy właściciela obiektu - pewnie po to, aby nie myśleć czemu w kontekście różnych właścicieli kod działa różnie.
Ma ktoś może linka do zalecanych przez M$ "Best Practices" czy "coding conventions" dla SQL Servera?
Pozdrawiam
-- Grzegorz Gruza Odpowiadając usuń "spamerom_nie." z adresu!!!
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?=
[mysql] =?ISO-8859-2?Q?po=B3=B1czenie_tabel_wg_kolumn=2C_?==?ISO-8859-2?Q?nie_wierszy?=
Zapytanie SQL z =?ISO-8859-2?Q?pust=B1_tabel=B1?=
[MySQL] Backup tabel przez "BACKUP" i problem z prawami dostępu :(
=?iso-8859-2?Q?Problem_z_left_join_-_=B3=B1czenie_kilku_tabel.?=
Przyspieszenie =?windows-1250?Q?dost=EApu_do_tabel_w_SQL_Server_2005?=
zanotowane.pldoc.pisz.plpdf.pisz.plkfia-tek.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 |
|