Pobieranie danych, z dwóch tabel, relacja pola id (PostgreSQL)

Odpowiedz Nowy wątek
2017-05-05 12:38

Rejestracja: 4 lata temu

Ostatnio: 1 tydzień temu

0

Dzień dobry.

Mam takie tabele:

A (id, idFirmy)
Firma (id, nazwaFirmy)

Chciałbym wypisać dane z dwóch tabel, A i Firma tak, by otrzymać A.id oraz Firma.nazwaFirmy w jednym rekordzie.
Proszę o podpowiedź.
Dzięki

Próbowałem z LEFT JOIN oraz z WHERE, ale coś nie gra.

Oczywiście Firma.id = A.idFirmy

PS.
Moja próba:

SELECT A.id, Firma.nazwaFirmy FROM A LEFT JOIN Firma WHERE A.idFirmy=Firma.id

Moje rzeczywiste zapytanie jest nieco inne, ale dla prostoty usunąłem pozostałe zmienne tak, by uchwycić sedno.

edytowany 2x, ostatnio: mpaw, 2017-05-05 12:43
Pokaż co wymodziłeś z tym left joinem i błąd który "nie gra". - krzysiek050 2017-05-05 12:40

Pozostało 580 znaków

2017-05-05 12:42

Rejestracja: 6 lat temu

Ostatnio: 57 minut temu

0

Tak wyprzedzając: Jeżeli robisz LEFT JOIN, a w WHERE nie sprawdzasz null'a to tak jakbyś LEFT JOIN'a nie robił. Możesz zawsze warunek z WHERE przenieść do LEFT JOIN'a.

edytowany 1x, ostatnio: grzesiek51114, 2017-05-05 12:43
Co ma where do typu sprzężenia - Panczo 2017-05-05 12:46
Można niechcący zlikwidować efekt left joina nie sprawdzając nulla: ...WHERE ISNULL(x.Field,y.Field) = y.Field Bez ISNULL'a zapytanie zwróci tylko nienullowe rekordy z tabeli gdzie porównujesz x.Field więc nici z left joina. PS: Wiem, że to Postgres i nie ma tam ISNULL'a ale to niczego nie zmienia. Najlepiej warunek z takiego WHERE przenieść do LEFT JOIN'a. - grzesiek51114 2017-05-05 12:50

Pozostało 580 znaków

2017-05-05 12:42

Rejestracja: 3 lata temu

Ostatnio: 2 godziny temu

1

Jak nie gra ? A jaki masz error? To musi działać:

SELECT A.id, Firma.nazwaFirmy
FROM A join Firma ON A.id = Firma.id

Jeśli chcesz widziec wszytsko z tabeli A i tylko to co będzie po Id miało w 2 tablicy to wtedy left join jak mowisz:

SELECT A.id, Firma.nazwaFirmy
FROM A left join Firma ON A.id = Firma.id
edytowany 1x, ostatnio: BlackBad, 2017-05-05 12:43

Pozostało 580 znaków

2017-05-05 12:44

Rejestracja: 4 lata temu

Ostatnio: 1 tydzień temu

0

Nie mam erroru, tylko pusty wynik (0 rekordów), a powinny być 2.

Przepraszam, mam ERROR: błąd składni blisko WHERE

edytowany 1x, ostatnio: mpaw, 2017-05-05 12:46
Wklej kod Selecta ... i sprawdź format ID w obu tabelach. - BlackBad 2017-05-05 12:45

Pozostało 580 znaków

2017-05-05 12:45

Rejestracja: 17 lat temu

Ostatnio: 3 minuty temu

Ale po co WHERE?

select
    A.id
    ,Firma.nazwaFirmy
from
    A
    left join Firma on Firma.id = A.idFirmy
No dokładnie. - grzesiek51114 2017-05-05 12:45
where jest mi potrzebne, gdyż id, w tabeli A odnosi się do konkretnego rekordu klikniętego myszką. - mpaw 2017-05-05 12:49

Pozostało 580 znaków

Krzywy Młot
2017-05-05 12:46
Krzywy Młot
1

SELECT A.id, Firma.nazwaFirmy from A join Firma on A.idFirmy = Firma.id;

Nie wiem czy o to Ci chodziło, powinno zadziałać.

Pozostało 580 znaków

2017-05-05 12:46

Rejestracja: 4 lata temu

Ostatnio: 1 tydzień temu

0

Aha, dzięki, nie miałem ON

Oznacz temat jako zamknięty. 2 ikonka przy kciuku ... oznacz którąś z powyższych poprawnych odpowiedzi. - BlackBad 2017-05-05 12:49

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0