![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 5 Dołączył: 10.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam dwie tabele które wyglądają tak:
tabela pracodawcy id....|miasto_id.......|nazwa........... 1.....|1....................|Budo-remont 2.....|4....................|HiTech 3.....|3....................|Studentowo 4.....|5....................|Szop-Pracz 5.....|2....................|Telefonika S.A. 6.....|1....................|Interneto sc. 7.....|1....................| Poczta Misiowa tabela miasta id....|nazwa.........|ludnosc 1.....|Pcim dolny...|1234 2.....|Mala wies....|310 3.....|Dwor...........|55000 4.....|Stolicowo....|3000000 5.....|Srednia wies|7235 6.....|Polakowo....|345000 chciałbym wyświetlić nazwę miasta + nazwa firmy dając takie zapytanie Kod select t1.nazwa, t2.nazwa as nazwa_firmy from miasta t1 inner join pracodawcy t2 on t1.id=t2.miasto_id Jest prawie dobrze jednak nie otrzymuje rekordu z miastem Polakowo w którym nie pracuje żadna firma.. Jak powinno wyglądać to zapytanie żeby była nazwa miasta i np puste miejsce na firme? Znalazłem sam odpowiedź wystarczyło zamienić z inner join na left join Ten post edytował mimol 28.08.2010, 14:11:20 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
A wiesz w ogóle dlaczego wystarczyło zmienić z inner join na left join? Bo mi się nie wydaje.
INNER JOIN - nie zwraca wiersza gdy nie znajdzie dopasowania. LEFT JOIN - dołącza wyniki z lewej kolumny mimo iż nie znajdzie powiązania z prawą kolumną, resztę NULLuje RIGHT JOIN - na odwrót jak left join FULL JOIN - zwróci wiersze jak znajdzie w którejkolwiek tabel. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 5 Dołączył: 10.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zadanie.
Wypisz ile firm ma swoje siedziby w danym mieście. Rozwiązaniem zadania powinien być wynik wyświetlony w dwóch kolumnach: nazwa miasta + ilość firm w danym mieście. Dane mają być posortowane malejąco (największa ilość pierwsza) po ilości firm w mieście. Nazwy zwracanych pól to odpowiednio: nazwa oraz ilosc moje zapytanie jak widać w Polakow`ie nie pracuje żadna firma. Więc udało mi się to zrobić tak jak wyżej. lub ale wtedy nie pokazuje Polakowa Jak zrobić żeby pokazał Polakowo ilosc = 0? |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 5 Dołączył: 10.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 13:20 |