Tabela 1. Producenci
Kod
ID MARKA
1 Sony
2 Samsusng
3 Lg
1 Sony
2 Samsusng
3 Lg
Tabela 2. Towary
Kod
ID ID_PRODUCENTA NAZWA
1 2 monitor
2 2 telewizor
3 3 dvd-rom
1 2 monitor
2 2 telewizor
3 3 dvd-rom
Do tej pory dane wybieralem przy pomocy LEFT JOIN:
SELECT Towary.ID Towary.ID_PRODUCENTA Towary.NAZWA Producenci.MARKA LEFT JOIN Producenci ON Producenci.ID = Towary.ID_PRODUCENTA FROM Towary
Stosujac ujemne wartosci w polu ID_PRODUCENTA (nie majace odpowiednikow w tabeli Producenci) okreslam np:
ID_PRODUCENTA = -1 gdy nieznany producent z terenu Europy
ID_PRODUCENTA = -2 gdy nieznany producent z terenu Azji
itd...
W takich przypadkach otrzymuje w wynikowym zapytaniu pole MARKA wypelnione wartoscia NULL a ujemna wartosc pola ID_PRODUCENTA wskazuje jaki
komunikat ma zostac wyswietlony przy danym produkcie z powodu braku producenta.
Minusem tej 'calej zabawy' jest koniecznosc sprawdzania przy usuwaniu rekordow z tabeli Producenci, czy nie ma jakis rekordow w tabeli Towary
podpietych pod usuwanego producenta.
Zdaje sobie sprawe, ze mozna to wykonac w sposob bardziej profesjonalny przy wykorzystaniu kluczy i relacji laczacych obie tabele.
Moze mi ktos podsunac pomysl?
Czy jest mozliwosc utowrzenia takiej relacji, ktora nie wymusza posiadania prawidlowego klucza przez tabele podrzedna (chodzi o ujemne
ID_PRODUCENTA)? Jezeli nie, to w jaki sposob rozwiazac ten problem?