rozbudowany select, zaćmienie

rozbudowany select, zaćmienie
JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0

Cześć,

Potrzebuje napisać troche bardziej skomplikowany SELECT ale nie moge kompletnie tego rozkminić, może ktoś z was byłby w stanie mi pomóc..
Mam w uproszczeniu takie 4 tabelki:

SNAPSHOT_ITEM - pola - id, number, name , foreign key do tabelki SNAPSHOT_HEADER
SNAPSHOT_HEADER - id, order_number

HEADER - id, order_number
ITEM - id, number, name, foreign key do tabelki HEADER

no i to czego potrzebuje to napisać takie zapytanie, które znajdzie mi takie SNAPSHOT_ITEM, które odpowiadają tym z tabelki ITEM, czyli które mają taką samą wartość w polu number oraz name, oraz ich rodzic ma taki sam order_number. Czyli np dla order_number = 100, chce dostać takie SNAPSHOT_ITEM, które pasują do tych ITEM które posiada HEADER o order_number = 100.

serek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1507
0

Poczytaj sobie o join.

oracledev
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 56
1

Z tego co opisujesz to twoje zapytanie wygląda mniej więcej tak:

Kopiuj

SELECT
  si.*
FROM SNAPSHOT_ITEM si
JOIN ITEM it ON it.number = si.number
            AND it.name = si.name
JOIN HEADER he ON he.id = it.FK_DO_HEADER
WHERE he.order_number = 100
JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0
oracledev napisał(a):

Z tego co opisujesz to twoje zapytanie wygląda mniej więcej tak:

Kopiuj

SELECT
  si.*
FROM SNAPSHOT_ITEM si
JOIN ITEM it ON it.number = si.number
            AND it.name = si.name
JOIN HEADER he ON he.id = it.FK_DO_HEADER
WHERE he.order_number = 100

Hmm, wygląda nieźle, to może powiem o co mi chodzi docelowo może będziesz w stanie pomóc.. Do tabelki SNAPSHOT_ITEM doszła kolumna ITEM_ID, i teraz muszę zrobić UPDATE na SNAPSHOT_ITEM, tak aby uzupełnić to ITEM_ID wartościami pasującymi z tabeli ITEM, wedle warunków o któych pisałem w zadaniu, czyli te same number itd.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.