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:
SELECT a.company, a.reference_serie reference_serie, a.reference_number reference_number, ? b.order_no, b.order_type, ? FROM tabela_A a LEFT OUTER JOIN tabela_B b ON a.reference_number = b.order_no 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