Wyświetlenie w tabeli kilku komórek w rekordzie z innej tabeli

0

Mam tabelę 'towary'. W tej tabeli są dwie kolumny które pochodzą z innej tabeli tj. 'producent_id' oraz 'nazwa_producenta'. Oczywiście tabela 'producenci' zawiera dużo więcej pól (adresy, kontakt).

Na chwilę obecną mam w tabeli 'towary' stworzoną relację do kolumny 'producent_id' w tabeli producenci, a nazwa producenta jest bez relacji. W wyniku aktualizacji producenta, pole 'nazwa_producenta' w tabeli 'towary' nie aktualizuje się.

Czy jest jakiś sposób żeby zarówno 'producent_id' jak i 'nazwa_producenta' w tabeli 'towary' były w relacji z tabelą 'producenci'?

1
SELECT * FROM towary inner join producenci on towary.producent_id = producenci.producent_id 
0

Nie wiem jak aktualizujesz tabelę producenci ale ja zawsze tworzę sobie procedurę bazodanową np (sp_Tabela_Operacja czyli u Ciebie byłoby to tak sp_Procducenci_Update) w niej wykonuję update na tabeli producenci zgodnie z podanymi parametrami. Jeśli masz coś takiego to możesz po update na producenci zrobić update na tabeli towary pola nazwa. Jak nie masz procedury i robisz insert/update/delete bezpośrednio z UI to możesz zrobić wyzwalacz na tabeli producenci (after update na polu nazwa_producenta), który będzie aktualizował pole nazwa_producenta w tabeli towary. Jest to bardzo nieeleganckie rozwiązanie ale skuteczne.

0

Zgadza się, ale bardziej podoba mi się pomysł z odczytem danych z połączenia dwóch tabel. Zastanawiam się tylko co się stanie jak połączę tabele, które mają taką samą nazwę kolumn.
np. mamy tabele kontrahenci i producenci. Każda tabela ma pole 'adres'. I jak wtedy połączyć tabelę i odczytać pole kontrahenci->adres?

2

możesz użyć aliasów

 select t1.nazwa nazwa_t1, t2.nazwa nazwa_t2 from tabela1 t1 inner join tabela2 t2 on t1.id = t2.id

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