• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

sprawdzenie zawartości ze wszystkimi tabelami

VPS Starter Arubacloud
+3 głosów
190 wizyt
pytanie zadane 5 października 2021 w SQL, bazy danych przez Lulex Użytkownik (820 p.)
Cześć,

stworzyłem tabelę z 4 kolumnami w której trzymam podstawowe dane o osobie tj. id_osoba, imię, nazwisko i wiek.

Następnie utworzyłem tabelę pracownik, która ma kolumny id_pracownik, stanowisko, pensja, id_osoba oraz tabelę uczeń - kolumny id_uczen, kierunek, stypendium, id_osoba

i teraz chce wyszukać np najstarszą osobę. Wiem jak to zrobić dla dwóch tabel, jednak jak to zrobić z 2+ tabelami? Czy muszę do każdej zrobić oddzielnego join'a czy jest jakaś opcja np "połącz ze wszystkimi tabelami" gdy mam pewność, że ten klucz id_osoba będzie w każdej tabeli?

Zastanawiam się czy mogę jakoś zrobić to od razu w ten sposób, nie chodzi o lenistwo :D ponieważ gdy będę chciał dodać kolejną tabelę np emeryt czy cokolwiek innego to wtedy muszę modyfikować poprzednie zapytanie.

1 odpowiedź

+2 głosów
odpowiedź 6 października 2021 przez SzkolnyAdmin Szeryf (86,280 p.)
Dane o wieku masz w tabeli osoba (pole wiek). Tabele pracownik i uczen są związane z nią relacją 1:1 poprzez klucz obcy  id_osoba. Po prostu szukasz najstarszych osób w tabeli osoba.

chyba, że chodzi o coś innego, wtedy doprecyzuj pytanie - co chcesz otrzymać w wyniku kwerendy.
komentarz 6 października 2021 przez Lulex Użytkownik (820 p.)
Chcę otrzymać wszystkie dane o tej osobie i je pobrać, żeby utworzyć obiekt np employee

Employee dziedziczy atrybuty z klasy abstrakcyjnej person (atrybuty name, surname, age) + ma własne atrybuty tj. position, salary
komentarz 6 października 2021 przez SzkolnyAdmin Szeryf (86,280 p.)
Można skorzystać z połączenia tabel relacją (JOIN), a nazwy pól (* w zapytaniu) pobierzesz przy pomocy funkcji mysli_fetch_field (serwer MySQL).
1
komentarz 6 października 2021 przez Wiciorny Ekspert (269,120 p.)

@Lulex, śmierdzi mi tu javą jak czytam i od razu rzuca mi się na oczy problem implementacji i używanie pewnych mechanizmów encji hiberneta, o których nie masz pojęcia. Ergo jeśli kolekcja agreguje kolekcje z mapowaniem, nie musisz zapytań robić ;] dodtkowo bo hibernate i tak to robi za ciebie kwestia odp. konfiguracji

Druga sprawa jeśli stosujesz dziedziczenie encji automatycznie pola są dziedziczone (wszystkie) i  będą mapowane na odpowiednią tabele 

1
komentarz 7 października 2021 przez Lulex Użytkownik (820 p.)
Masz bardzo dobry węch w takim razie :D

dzięki za wskazówki, poradziłem sobie trochę inaczej i obszedłem to już bezpośrednio w javie składając odpowiednie zapytanie :)
komentarz 7 października 2021 przez Wiciorny Ekspert (269,120 p.)
bo to głównie mylnie jest "przez javovców nazywane " encja -> obiekt -> baza, tak było zanim powstały mikroserwisy i generalnie "event storming"

A sam programuje w javie juz 8 lat w biznesie

Podobne pytania

0 głosów
0 odpowiedzi 93 wizyt
pytanie zadane 20 stycznia 2021 w SQL, bazy danych przez Piotr Jarema Użytkownik (970 p.)
0 głosów
1 odpowiedź 172 wizyt
pytanie zadane 16 stycznia 2018 w SQL, bazy danych przez ThreeG Nowicjusz (170 p.)
0 głosów
0 odpowiedzi 115 wizyt
pytanie zadane 26 lipca 2016 w SQL, bazy danych przez Ehlert Ekspert (212,630 p.)

92,454 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...