![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
już jakiś czasu tworzę sobie małą bazę danych, a że na początku nie wiedziałem prawie nic o tym to projektowanie tabel pozostawiało wiele do życzenia (IMG:style_emoticons/default/smile.gif)
w każdym razie mam tabelę produktów i operacje do nich przywiązane. I zamiast zrobić osobną tabelę z operacjami i tabele łączoną między nimi to w tabeli produkty mam kilkanaście pól boolean, gdzie zaznaczam czy dana operacja występuje, Chciałbym to naprawić, ale nie wiem czy jest jakieś magiczne polecenie (UPDATE....SELECT) które pomoże przenieść dane o operacjach z tabeli produkty do nowej tabeli, gdzie będę wpisywał ID produktu i ID operacji... Może ktoś mnie chociaż nakieruje na rozwiązanie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 807 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Pierwszej kwestii nie do końca rozumiem. Czemu chcesz zrobić GROUP BY? Przecież wyciągając te dane będziesz miał właśnie tylko te produkty, dla których wykonano operacje. GROUP BY mogłoby ewentualnie wyeliminować tą samą operację na tym samym produkcie.
Co do kwestii kolejności. Wydaje mi się, że tu wystarczy zwykły klucz sortowania, czyli czym nowsza operacja, tym większy klucz. Nie ma znaczenia czy będzie większy o 1,2 czy 10, ważne, że większy. Następną operację względem danej wyciągniesz poprzez zapytanie: WHERE klucz_sortowania>klucz_aktualnej_operacji ORDER BY klucz_sortowania LIMIT 0,1. W przypadku poprzedniej, odwrotny warunek i odwrotne ORDER BY. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 16:33 |