Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%)
|
Witam. Mam problem ze złączeniem danych z kilku tabel, w zależności od wartości danych w jednej kolumnie.
Dokładniej: mam 3 tabele: PRODUCTS | ID | NAME | .... | AWARDS | ID | NAME |...| OPERATIONS | ID | .... | ACTION | PRODUCT | I teraz pojawia się problem bo mamy ogólnie 3 dostępne akcje: 1 - standard 2 - produkt 3 - nagroda czyli przykładowe rekordy będą wyglądać tak: OPERATIONS | 1 | ... | 1 | NULL | | 2 | ... | 2 | 2 | | 3 | ... | 3 | 1 | | 4 | ... | 2 | 1 | | 5 | ... | 1 | NULL | W wyniku chciałbym otrzymać: QUERY | 1 | ... | 1 | NULL | | 2 | ... | 2 | AWARD 2 NAME | | 3 | ... | 3 | PRODUCT 1 NAME | | 4 | ... | 2 | AWARD 1 NAME | | 5 | ... | 1 | NULL | Zatem JOIN chyba odpada, bo nie będzie wiedział z której tabeli dołączać. Przydałby się IF a może bardziej CASE skleciłem coś takiego z case, ale nie działa tak jak trzeba, w kolumnie NAME dostaje wszędzie NULL:
A może najlepszym rozwiązaniem byłoby dodanie kolumn dla AWARDS i PRODUCTS? Ten post edytował vokiel 23.07.2008, 13:07:06 |
|
|
|
vokiel [IF][CASE]![JOIN] Złączenie z kilku tabel z warunkami 23.07.2008, 11:59:25
ddiceman Pisze z glowy, wiec wymaga to sprawdzenia
[SQL] p... 23.07.2008, 20:42:29
vokiel Działające poprawnie zapytanie (bez uproszczeń):
[... 24.07.2008, 08:36:27
osiris Wydaje mi sie ze wydajniejszym zapytaniem byloby:
... 24.07.2008, 12:39:00
vokiel Dzięki za zainteresowanie
Niestety, w Twoim przyk... 24.07.2008, 12:56:49
osiris Poprawilem 24.07.2008, 13:15:58
vokiel No i działa
Trudno mi teraz mierzyć wydajność obu... 24.07.2008, 14:39:43 ![]() ![]() |
|
Aktualny czas: 23.12.2025 - 04:46 |