Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Oracle 11g złączenie dwóch tabel
pawelkowina
post 23.10.2012, 21:03:33
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 23.10.2012

Ostrzeżenie: (0%)
-----


Proszę o pomoc w związku z łączeniem dwóch tabel w Oracle 11g.
W pierwszej tabeli mam dane ogólne a w drugiej znajdują się szczegóły.
Pobierając jeden wiersz z tabeli a powtarzam go kilka razy bo szczegóły w tabeli b są w kilku wierszach.
Złączenie musi odbywać się po dwóch kolumnach z każdej z tabel o różnych nazwach, czyli łączymy po dwóch parach kolumn.

Mam coś takiego:

  1. SELECT a.company,
  2. a.reference_serie reference_serie,
  3. a.reference_number reference_number,
  4. ?
  5. b.order_no,
  6. b.order_type,
  7. ?
  8. FROM tabela_A a LEFT OUTER JOIN tabela_B b ON
  9. a.reference_number = b.order_no
  10. AND a.reference_serie = b.order_type


ale to nie działa niestety tak jak powinno. Złączenie to działa tylko przy połączeniu po jednej kolumnie z każdej tabeli. Nie potrafię tego tak zapisać aby były uwzględniane oba warunki.

Schemat działania powinien wyglądać mniej więcej tak:

Tabela A:

reference_serie reference_number ? ?
A 100
A 200
B 100


Tabela B:

Order_no order_type Date quantity
A 100 2012-05-01 10
A 100 2012-08-20 210
B 100 2012-05-01 1
B 100 2012-07-12 45
B 100 2012-08-01 12
B 100 2012-09-01 10


Oczekiwany wynik select-a:

reference_serie reference_number ? ? Order_no order_type Date quantity
A 100 ? ? A 100 2012-05-01 10
A 100 ? ? A 100 2012-08-20 210
A 200 ? ? null null null null
B 100 ? ? B 100 2012-05-01 1
B 100 ? ? B 100 2012-07-12 45
B 100 ? ? B 100 2012-08-01 12
B 100 ? ? B 100 2012-09-01 10
Powód edycji: [webdice]: Dodałem tagi bbcode.
Go to the top of the page
+Quote Post
mmmmmmm
post 23.10.2012, 22:00:08
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


Coś namieszałeś... Napisałeś:
from tabela_A a LEFT OUTER JOIN tabela_B b ON
a.reference_number = b.order_no
and a.reference_serie = b.order_type
(co jest prawidłowe)
Ale tabele przedstawiłeś inaczej, czyli:
Order_no order_type Date quantity
A 100 2012-05-01 10
i
reference_serie reference_number … …
A 100
Więc w myśl powyższego zapytania usiłujesz połączyć reference_number 100 z order_no A oraz reference_serie A z order_type 100...
Może to jest ten błąd?
Go to the top of the page
+Quote Post
webdice
post 23.10.2012, 22:42:30
Post #3


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Proszę w przyszłości używać odpowiednich tagów bbcode.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 09:48