[sql] Jak zadac pytanie zeby wyszla wartosc z innej tabelki

0

Patrzcie mam co takiego
jedna tabelka

NAZWA
id | kod
--+-----
1 | 3
2 | 4

i druga tabelka

KODY
id | name
--+------
1 | CO
2 | CV
3 | PE
4 | TS
5 | WR

chodzi mi teraz ze jak zrobie taki SQL jak ponizej to zapytanie sie wyswietli
ale jesli z tabeli KODY skasuje pozycje o ID = 3 to wysweitli mi sie tylko
ze mam w tabeli NAZWA jedna pozycje. bo zalezy mi na ty ze jesli nie ma KODU
albo zostal skasowany to zeby bylo puste miejsce:

SQL = SELECT nazwa.id, kody.name FROM nazwa,kody WHERE nazwa.kod = kody.id;

Czyli ze powyzszy warunek jest jako AND dlatego nie wyswietla mi sie wpis:

Zrobilem teraz tak:

SQL = SELECT nazwa.id, kody.name FROM nazwa NATURAL JOIN kody;

I w polach kodu wyswietla mi tylko CO

W bazie dodalem jeszcze:
CONSTRAINT "$1" FOREIGN KEY (kod)
REFERENCES kody (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION

Czy ktos wie co moze byc zle ?

0

a może

SELECT nazwa.id, kody.name FROM nazwa LEFT JOIN kody ON kody.id = nazwa.kod;

0

sprobuj:

select nazwa.id, kody.name from nazwa left join kody on nazwa.kod = kody.id

//edit

heh, Adamo, byles pierwszy :)

pozdrawiam
johny

0

Albo mi się wydaje, albo nie napisałeś konkretnia jaka to baza. Niestety SQL SQL'owi nierówny. Pod MySQLem napisałbym tak:
SELECT nazwa.id, kody.name FROM nazwa LEFT JOIN kody ON(nazwa.kod=kody.id);
///E... To ja trzeci? :D

0

ta baza to PostgreSQL
Wlasnie jest to tak ze w innej bazie danych dziala a zrobilem druga baze i te tabelki i nie dziala
zaraz sprawdze wasze propzycje juz sie mecze z dwa dni nad tym i zaraz napiasze wam czy dziala to co mowicie i jak dziala na tej bazie. dzieki za porady i pomoc

Dziala ten kod z LEFT JOIN nie wiem czemu nie dziala NATURAL ale wspaniale pracuje jesli nie ma danego ID w bazie do ktorej odnosi sie ID w glownej tabelce to wysweitla puste miejsce i o to chodzilo. Dziekuje WAM :] nie ma to jak potęga 4p

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