![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Jak wygląda relacja jeden-do-wielu, to pewnie większość wie, możliwe że się mój problem już przewinął, ale po poszukiwaniach nie znalazłem innych rozwiązań niż te, które zdążyły się już osadzić w mojej mózgownicy.
Mianowicie, szukam sposobu na wyciągnięcie reprezentanta z tabeli będącej częścią "wielu" z nazwy relacji, np. tabela mieszkania i tabela mieszkańcy. Potrzebuję wyciągnąć listę wszystkich mieszkań wraz z dokładnie jednym mieszkańcem, który w nim rezyduje. No i znane mi są dwie możliwości:
moje pytanie: są inne opcje niż powyższe? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Jeżeli w tabeli łączącej mieszkańców z mieszkaniami, miałbyś kolumnę z informacją o tym czy dany mieszkaniec jest właścicielem mieszkania, to wystarczyła by taka informacja w klauzuli ON ( ... ) i pobrało by tylko jednego mieszkańca z każdego mieszkania dla każdego mieszkania. Albo próbuj jakąś daną z tabeli mieszkańców, pobrać która jest unikatowa dla poszczególnych mieszkańców danego mieszkania.
@edit ciężko tak na sucho jak nie znasz reprezentacji tabel. Ten post edytował cojack 12.08.2010, 13:31:26 |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Ale to przykładowo tylko, załóżmy:
mieszkania Kod +----+-------+ | ID | nazwa | +----+-------+ | 4 | asd | | 5 | sda | | 6 | xyz | +----+-------+ 3 rows in set (0.00 sec) mieszkańcy; Kod +----+------------+----------+ | ID | mieszkanie | nazwisko | +----+------------+----------+ | 1 | 4 | fgdfg | | 2 | 4 | xyyy | | 3 | 5 | werwer | | 4 | 5 | dsfgdfg | | 5 | 6 | ffff | +----+------------+----------+ 5 rows in set (0.00 sec) zwykły join Kod +----+-------+----+------------+----------+ | ID | nazwa | ID | mieszkanie | nazwisko | +----+-------+----+------------+----------+ | 4 | asd | 1 | 4 | fgdfg | | 4 | asd | 2 | 4 | xyyy | | 5 | sda | 3 | 5 | werwer | | 5 | sda | 4 | 5 | dsfgdfg | | 6 | xyz | 5 | 6 | ffff | +----+-------+----+------------+----------+ 5 rows in set (0.00 sec) i z pogrupowaniem: Kod +----+-------+----+------------+----------+ | ID | nazwa | ID | mieszkanie | nazwisko | +----+-------+----+------------+----------+ | 4 | asd | 1 | 4 | fgdfg | | 5 | sda | 3 | 5 | werwer | | 6 | xyz | 5 | 6 | ffff | +----+-------+----+------------+----------+ 3 rows in set (0.04 sec) Chodzi mi o ten z pogrupowaniem (ale tylko pod względem działania). (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
@edit a nie kufa, fail sory to jest m-to-m czekaj bo mnie tu w pracy goni czas.. @edit2 no przecież tu zwykły DISTINCT poleci. Ale mi namieszałeś w berecie. Ten post edytował cojack 12.08.2010, 14:20:24 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
No tak, ale chcę uniknąć tworzenia osobnej kolumny. Nieistotne jest, którego mieszkańca wybierze. Też wpadłem na coś takiego, ale zależy mi na rozwiązaniu, które działa jak GROUP BY, ale przy napotkaniu pasującego rekordu przejdzie do następnego dopasowania źródłowego, a nie katuje pomimo to, że ma już co trzeba...
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
HAVING...
|
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
skleroza nie boli, a ja kombinowałem... (IMG:style_emoticons/default/dry.gif) ~zegarek84, ale to wciąż wymaga użycia group by. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
...Potrzebuję wyciągnąć listę wszystkich mieszkań wraz z dokładnie jednym mieszkańcem, który w nim rezyduje. Więc ja źle zrozumiałem o co chodziło (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.09.2025 - 23:46 |