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

Pomoc z zapytaniem sql

0 głosów
730 wizyt
pytanie zadane 14 sierpnia 2018 w SQL, bazy danych przez fipooo Bywalec (2,880 p.)

Jak napisać zapytanie które zwróci mi "zwracanie" - tab2 która w tab3 ma przypisany numer 2 i 4? Albo 3 i 2. Czyli w 1 przypadku chciałbym dostać "ooo" a w 2 "hhh".

 

komentarz 15 sierpnia 2018 przez Ubermade Bywalec (2,020 p.)
To brzmi jak jakieś zadanie z matematyki z wykrzyknikiem :d Mógłbyś to jakoś uprościć?
komentarz 15 sierpnia 2018 przez fipooo Bywalec (2,880 p.)

Bardziej niż na obrazku się chyba nie da. Chcę wyciągnąć "zwracanie" to na niebiesko w zależności od tego jaki numer ma przypisane w tab3 to na czerwono.

4 odpowiedzi

+2 głosów
odpowiedź 15 sierpnia 2018 przez Arkadiusz Waluk Ekspert (290,250 p.)
wybrane 15 sierpnia 2018 przez fipooo
 
Najlepsza
Też nie jestem pewien czy dobrze zrozumiałem z tego rysunku ale łączenie tabel robi się poprzez JOIN. W jednym zapytaniu dołączasz wtedy jedną tabelę do drugiej i łączysz rekordy po danym warunku - najczęściej id będące kluczem obcym w danej tabeli z id kluczem podstawowym w drugiej.
komentarz 15 sierpnia 2018 przez fipooo Bywalec (2,880 p.)

Dobra mam zrobiłem łączenie tabel ale mam inny problem. Jak napisać zapytanie które zwróci mi wartości z tab1 w zależności od tab3. Np. w tab3 mamy przypisane (wiele do wielu tablica) do tab1 - ID 1 wartość 2222 i 1111 i chcę dostać te wyniki które mają przypisane takie wartości. Napisałem tak 

SELECT DISTINCT  e.ID, e.Nazwa, e.Tekst FROM tab1 as e JOIN tab3 as c WHERE e.ID = c.tab1ID;

i to mi zwraca wyniki z tab1 które mają coś przypisane w tab3. Ale jak napisać zapytanie które będzie mi zwracało wyniki z tab1 uzależnione od 2 wierzysz w tab3? Czyli wiersz z tab1 musi mieć przypisane w tab3 2 wartości np 2222 i 1111 w tym przypadku.Nie wiem czemu ale jakość screena się psuje gdy go tu wrzucam.

+1 głos
odpowiedź 15 sierpnia 2018 przez Ubermade Bywalec (2,020 p.)

Na pewno istnieje jakaś prostsza forma niż ta, którą podam, ale możesz wykonać dwa zapytania, czyli:

SELECT * FROM tab3

później zrobić fetcha dla rekordu number i wykonać takie zapytanie:

SELECT * FROM tab2 WHERE id = :number

 

Żeby zrobić to w jednym zapytaniu można użyć left join z tego, co kojarzę, ale jeszcze poszukam, jak to dokładnie działało :p

+1 głos
odpowiedź 15 sierpnia 2018 przez niezalogowany
Możesz dać wyraźniejszego skrina? Bo na tym nic nie widać, a najlepiej zapisz zawartości tabel, np. (tab1): ID -> numer 1 -> 2 2-> 3 3-> 4 Poza tym nie podoba mi się tab2. Gdy wybierzesz z niej numery 2 i 3 to dostaniesz nazwę albo "a" (dwa pierwsze rekordy) albo "b" (dwa ostatnie rekordy). Chyba, że nie dowidzę na tym skrinie.... I jeszcze jedno: wybierasz z tej tabeli jeden rekord (nazwa odpowiadająca numerowi) czy też nazwy odpowiadające łącznie dwóm rekordom? Spójnik "i" sugeruje to drugie rozwiązanie, ale wtedy będzie kłopot z numerami 2 i 4, bo 4 z pierwszą 2 da "a" (2->a, 4->a), ale z drugą 2 już nie da nic (4->a, 2->b).
0 głosów
odpowiedź 15 sierpnia 2018 przez fipooo Bywalec (2,880 p.)
Nie chcę tworzyć nowego tematu więc tutaj zadam pytanie. Jak utworzyć zapytanie które będzie się odnosić do 2 wierszy ale tej samej kolumnie. Coś jak rozmiar butów w sklepie chcemy wybrać pary te które mają rozmiar 44 i 45. Czyli mamy kolumnę "Rozmiar" i tam jakieś rozmiary przypisane do ID.BUTA i do ID.BUTA = 1 mamy przypisane tylko rozmiar 44 i 45 i chciałbym wyciągnąć ID.BUTA ale tylko te które mają rozmiar = 44 i 45. Jak to zrobić?
komentarz 24 sierpnia 2018 przez Catalonya1992 Mądrala (5,440 p.)
Napisz warunek where ID_BUTA IN (44, 45). Możesz też zrobić where (ID_BUTA = 44 or ID_BUTA = 45).

Podobne pytania

0 głosów
1 odpowiedź 299 wizyt
pytanie zadane 19 sierpnia 2017 w SQL, bazy danych przez Melchior Obywatel (1,300 p.)
+2 głosów
1 odpowiedź 440 wizyt
pytanie zadane 22 października 2021 w SQL, bazy danych przez p4wix Obywatel (1,040 p.)
0 głosów
0 odpowiedzi 899 wizyt

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...