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

Odpowiedz Nowy wątek
2006-09-06 13:43
masterO
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 ?

Pozostało 580 znaków

2006-09-06 15:45
0

a może

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


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-09-06 15:47
0

sprobuj:

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

//edit

heh, Adamo, byles pierwszy :)

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-09-06 15:51
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


Grunt to uziemienie...

Pozostało 580 znaków

2006-09-06 16:16
masterO
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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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