• 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

+3 głosów
325 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 (90,270 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 (90,270 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 (282,390 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 (282,390 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 202 wizyt
pytanie zadane 20 stycznia 2021 w SQL, bazy danych przez Piotr Jarema Użytkownik (970 p.)
0 głosów
1 odpowiedź 234 wizyt
pytanie zadane 16 stycznia 2018 w SQL, bazy danych przez ThreeG Nowicjusz (170 p.)
0 głosów
0 odpowiedzi 165 wizyt
pytanie zadane 26 lipca 2016 w SQL, bazy danych przez Ehlert Ekspert (215,070 p.)

93,604 zapytań

142,529 odpowiedzi

322,997 komentarzy

63,092 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

Kursy INF.02 i INF.03
...