rozbudowany select, zaćmienie

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.

0

Poczytaj sobie o join.

1

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


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
0
oracledev napisał(a):

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


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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1