klocu
8.12.2007, 10:28:00
Witam.
Mój problem dotyczy łączenia rekordów w sposób dość dziwny, jednak konieczny w działaniu aplikacji.
Przykład dwóch rekordów:
rekord 1 : dana1 | dana2 | dana3 | dana4
rekord 2 : dana1 | dana2 | dana3 | dana5
jak widać 4 pierwsze dane są identyczne dla obu rekordów, różnica to ostatnia dana.
a otrzymać chciałbym strukturę (zachowując dane jak wyżej)
rekord 1 : dana1 | dana2 | dana3 | dana4 | dana5 (ta z drugiego rekordu)
Jakiego zatem operatora spajania danych użyć i czy taka "kombinacja" jest wykonalna?
Z góry dziękuje za pomoc.
to się da zrobić, choć zapytanie będzie faktycznie zagmatwane... poza tym nasuwają mi się wątpliwości co do logiki tej konstrukcji... co w przypadku gdy zapytanie zniajdzie więcej niż dwa rekordy gdzie pierwsze 3 pola są identyczne? które wtedy ma połączyć w pary ? wg jakich kryteriów ? moje doświadczenia wskazują, że konieczność stosowania "dziwacznych" zapytań jest najczęściej wynikiem złej konstrukcji (projektu) bazy danych... gdybyś napisał coś więcej o tej tablicy, do czego poszczególne pola są przeznaczone i dlaczego potrzebny ci taki wynik zapytania - może można byłoby znaleźć sposób na optymalizację twojego projektu. w dobrze zaprojektowanej bazie wszystkie zapytania powinny być stosunkowo proste - tak uważam.
pozdrawiam.
klocu
8.12.2007, 13:49:10
to co opisałem było dość ogólnym zarysem konstrukcji którą tworzę. nie jest to kwestia "złej konstrukcji bazy" tylko stworzenia elastycznego projektu, który w łatwy sposób da się rozbudować o dodatkowe moduły.
po zagnieżdzeniu ograniczeń i szczegółowego wyszukiwania interesujących mnie danych. obecnie rozwiązałem problem (drogą nawet lepszą niż dokładnanie kolejnego pola) poprzez funkcję "GROUP_CONCAT", który przy obecnej porcji danych działa jak należy.
czyli mogę powiedzieć, że temat uważam za zamknięty.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.