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

Bazy danych sql, kwerenda działająca na trzech tabelkach

VPS Starter Arubacloud
0 głosów
401 wizyt
pytanie zadane 10 stycznia 2018 w Rozwój zawodowy, nauka, praca przez tma Nowicjusz (160 p.)
Witam, mam problem ze stworzeniem kwerendy w sql.

Posiadam Tabelkę A która jest kluczem głównym oraz tabelki B, C, D powiązane z tabelką A kluczem obcym. Problem jest taki, że tabelka D jest opcjonalna(posiada null). Potrzebuję wypisać wszystkie dane z tabelki B, C oraz D (jeśli takie istnieją), które są połączone z A wartością '8'  

Potrafię to zrobić zwykłym wherem oraz łącznikami AND i OR jeśli do tabelki D opcjonalnej wpiszę wartość z klucza głownego 8, jeśli jednak jest on pusty (co jest dla mnie ważne) kwerenda się sypie i wywala empty set

Nie będę wrzucał tej kwerendy tutaj gdyż są to zagmatwane tabele pośednie. Chciałbym aby ktoś napisał to ona tych literkach a ja sobie przeanalizuje i przerzucę do swojej bazy ;)
komentarz 10 stycznia 2018 przez Tomek Sochacki Ekspert (227,510 p.)
Możesz dać na http://sqlfiddle.com/

A tak na marginesie to jeśli robisz takie połączenia wielu tabel to fajnie jest potworzyć sobie widoki na bazie i potem w aplikacji masz proste selecty do widoku bez żadnych złączeń i innej "logiki" bazy.
komentarz 14 stycznia 2018 przez tma Nowicjusz (160 p.)
Ja właśnie potrzebuje tą całą logikę bazy :(

2 odpowiedzi

0 głosów
odpowiedź 10 stycznia 2018 przez Wiciorny Ekspert (269,120 p.)
Poczytaj o Inner JOIN  z typu LEFT- RIGHT Join :) na odpowiednich kolumnach,
komentarz 14 stycznia 2018 przez tma Nowicjusz (160 p.)
Wiem jak to działa, problem jest troszkę inny. Zaraz zaaktualizuje.
0 głosów
odpowiedź 14 stycznia 2018 przez tma Nowicjusz (160 p.)

Diagram mojej bazy danych wygląda następująco:

Potrzebuję wypisać nazwę diety, nazwę ćwiczenia, ilość serii, ilość powtórzeń oraz nazwę suplementu. Mój select póki co działa tylko wtedy, jeśli do kogoś był przypisany suplement, jeśli takowego nie było (a jest związek opcjonalny i możę się tak wydarzyć) wtedy też powinno wyświetlać tylko, że w nazwa suplementu np. 'brak'.

Mój obecny select działa, ale gdy usunę w tabeli pośredniej suplementacje (która musi być opcjonalna) - pokazuje empty set. Jak mogę go edytować tak, aby przy braku suplementacji wpisywał automatycznie 'brak'?

select d.nazwa_dieta, t.nazwa_cwiczenia,t.ilosc_serii,t.ilosc_powtorzen,s.nazwa_suplementu from dieta as d, trening as t, suplementacja as s, historia_zmian as h,historia_zmian_dieta as hd,historia_zmian_trening as ht,historia_zmian_suplementacja as hs where h.id_historia=hd.id_historia and hd.id_dieta=d.id_dieta and h.id_historia=ht.id_historia and ht.id_trening=t.id_trening and h.id_historia=hs.id_historia and hs.id_suplementacja=s.id_suplementacja and h.id_historia='5'

 

Pozdrawiam

 

Podobne pytania

0 głosów
1 odpowiedź 174 wizyt
pytanie zadane 3 lipca 2018 w PHP przez ojejj Początkujący (350 p.)
+1 głos
0 odpowiedzi 147 wizyt
pytanie zadane 10 maja 2021 w SQL, bazy danych przez Bartek030 Obywatel (1,460 p.)
0 głosów
1 odpowiedź 123 wizyt
pytanie zadane 23 sierpnia 2017 w SQL, bazy danych przez Bartess Gaduła (3,630 p.)

92,454 zapytań

141,262 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!

...