select z tabel bez wspólnych kluczy
floran - 21-07-2006 01:19
select z tabel bez wspólnych kluczy
Mam 3 tabele, żadne z nich nie mają wspólnych kolumn pomiędzy sobą (mają je natomiast z innymi tabelami). Z każdej z tych trzech tabel potrzebuję po 1 lub 2 pola. Dodatkowo musze nałożyć warunek na dwie z trzech tabel w celu ograniczenia wyciągniętych danych. Nie wiem jak się do tego zabrać :/ Przy wspólnych kluczach złączyłbym tabele ze sobą i na nich dał warunki where, a tutaj nie mam pojęcia. Czy taki select jest w ogóle możliwy do wykonania ?
pozdrawiam
=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 21-07-2006 01:19
floran wrote: > Mam 3 tabele, żadne z nich nie mają wspólnych kolumn pomiędzy sobą (mają > je natomiast z innymi tabelami). > Z każdej z tych trzech tabel potrzebuję po 1 lub 2 pola. > Dodatkowo musze nałożyć warunek na dwie z trzech tabel w celu ograniczenia > wyciągniętych danych. > Nie wiem jak się do tego zabrać :/ > Przy wspólnych kluczach złączyłbym tabele ze sobą i na nich dał warunki > where, a tutaj nie mam pojęcia. > Czy taki select jest w ogóle możliwy do wykonania ? A może zamiast opowiadać o tym co masz, to po prostu nam pokażesz? :-> Pokaż jak dokładnie wyglądają te tabele i jaki wynik chcesz uzyskać dla przykładowych danych.
Ale od razu powiem, że jeśli potrzebujesz łączyć dane z tabel, a nie mają one relacji między sobą, to brzmi to cokolwiek podejrzanie... Tak jakbyś coś przeoczył projektując strukturę.
-- Michał Kuratczyk
Borafu - 21-07-2006 01:19
floran napisał(a): > Mam 3 tabele, żadne z nich nie mają wspólnych kolumn pomiędzy sobą (mają je > natomiast z innymi tabelami). > Z każdej z tych trzech tabel potrzebuję po 1 lub 2 pola. > Dodatkowo musze nałożyć warunek na dwie z trzech tabel w celu ograniczenia > wyciągniętych danych. > Nie wiem jak się do tego zabrać :/ > Przy wspólnych kluczach złączyłbym tabele ze sobą i na nich dał warunki > where, a tutaj nie mam pojęcia. > Czy taki select jest w ogóle możliwy do wykonania ?
Albo te tabele coś jednak łączy (np inna tabela, która zawiera łączniki, zawartość pól itp), albo będziesz musiał napisać procedurę spWynajmijWrozke
Pozdro -- Borafu
floran - 21-07-2006 01:19
> Pokaż jak dokładnie wyglądają te tabele i jaki wynik chcesz uzyskać dla > przykładowych danych.
Te trzy tabele posiadają po kilkanaście kolumn każda, ale istotne dla mnie są tylko poniższe:
DOM |ulica|rodzajdomu| (warunek na rodzajdomu = 'Z')
ODCZYT |stan|numer|
WSKAZNIK |rodzajwskaznika| (warunek na rodzajwskaźnika = 'B')
Wykonać taki select aby pokazać wszystko z uwzględnieniem powyższych dwóch warunków
>Tak jakbyś coś przeoczył projektując strukturę. Baza była gotowa - ja tylko na niej wyszukuję :/
floran - 21-07-2006 01:19
> Albo te tabele coś jednak łączy (np inna tabela, która zawiera łączniki, > zawartość pól itp), albo będziesz musiał napisać procedurę > spWynajmijWrozke
Te 3 tabele o które mi chodzi łączą się z innymi tabelami jak piszesz, czyli poptrzez tamte tabele je złączyć tak ? Inaczej nie da rady ?
Borafu - 21-07-2006 01:19
floran napisał(a): >> Albo te tabele coś jednak łączy (np inna tabela, która zawiera łączniki, >> zawartość pól itp), albo będziesz musiał napisać procedurę >> spWynajmijWrozke > > Te 3 tabele o które mi chodzi łączą się z innymi tabelami jak piszesz, czyli > poptrzez tamte tabele je złączyć tak ? > Inaczej nie da rady ?
Zastanów się na spokojnie. Masz 100 adresów i 100 nazwisk, każdy w innej tabelce. Jak masz wybrać zestaw typu nazwisko + adres jeśli nie określisz jakiegoś związku?
A jakbyś na jednej kartce spisał kumpli z podstawówki, a na drugiej same adresu, tak jak mu się udało je zdobyć. I jak z tgo teraz wybierzesz pary? Założysz że n-ty zapis w nazwiskach odpowiada n-temu zapisowy w adresach. A jesteś tego pewien?
Musisz znaleźć metodę, która powiąże to razem i powie ci który adres do którego kumpla pasuje.
Pozdro -- Borafu
floran - 21-07-2006 01:19
> Zastanów się na spokojnie. > Masz 100 adresów i 100 nazwisk, każdy w innej tabelce. Jak masz wybrać > zestaw typu nazwisko + adres jeśli nie określisz jakiegoś związku? > > A jakbyś na jednej kartce spisał kumpli z podstawówki, a na drugiej same > adresu, tak jak mu się udało je zdobyć. I jak z tgo teraz wybierzesz pary? > Założysz że n-ty zapis w nazwiskach odpowiada n-temu zapisowy w adresach. > A jesteś tego pewien? > > Musisz znaleźć metodę, która powiąże to razem i powie ci który adres do > którego kumpla pasuje.
Rozumiem. Czyli bez tych samych kolumn nie można wybrać niczego. Ja mam taką sytuację, że te 3 tabele nie posiadają wspólnych kolumn, posiadają jednak w swoich relacjach powiązania z innymi tymi samymi tabelami jednak innymi kolumnami. Może to w czymś pomoże ? Mam nadzieję, że jasno się wyraziłem :)
=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 21-07-2006 01:19
floran wrote: > Rozumiem. Czyli bez tych samych kolumn nie można wybrać niczego. > Ja mam taką sytuację, że te 3 tabele nie posiadają wspólnych kolumn, > posiadają jednak w swoich relacjach powiązania z innymi tymi samymi > tabelami jednak innymi kolumnami. Może to w czymś pomoże ? Nie tyle "może pomóc", co "to jest właśnie Twoje rozwiązanie". Po prostu złączasz wszystko czego potrzebujesz, aby logicznie powiązać dane, które Cię interesują i potem wybierasz (na liście SELECTa) tylko dane z tych trzech tabel, o których pisałeś na początku.
-- Michał Kuratczyk
floran - 21-07-2006 01:19
> Nie tyle "może pomóc", co "to jest właśnie Twoje rozwiązanie". > Po prostu złączasz wszystko czego potrzebujesz, aby logicznie powiązać > dane, > które Cię interesują i potem wybierasz (na liście SELECTa) tylko dane > z tych trzech tabel, o których pisałeś na początku.
Okazało się, że potrzebuję danych tylko z dwóch a nie trzech tabel - to bardzo ułatwiło sprawę. Mój problem załatwiłem w dwóch krokach oraz dzięki tabelom tymczasowym :) Dzięki Wam za pomoc.
pozdrawiam
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?=
[help] Illustrator CS - =?ISO-8859-2?Q?znikn=B1=B3_Selection_?==?ISO-8859-2?Q?Tool_=28V=29?=
[mysql 4.0] SELECT t1.id, t1.foo FROM t1 oraz COUNT t2 w jednym zapytaniu.
[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 :(
zanotowane.pldoc.pisz.plpdf.pisz.plshanti.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 |
|