Witajcie, mam następujący problem z którym nijak nie wiem jak sobie poradzić ;/
Mam tabele 'produkty' a w niej
id, nazwa, ean, kategoria
gdzie kategoria jest typu int ( identyfikator kategorii)
do tego jest tabela kategorie
id, nazwa (id odpowiada 'kategoria' z tebeli produkty)
do tego jest jeszcze tabela ilosc
id, ilosc (id odpowiada id produktu ilość to info ile danego produktu jest)
chciałbym wyciągnąć z bazy danych liste produktów z podziałem na kategorie i ilością produktów przykładowo dla tabel:
produkty
id | nazwa | ean | kategoria |
---|---|---|---|
1 | cukier | 1234 | 1 |
2 | mleko | 1234 | 2 |
3 | sól | 1234 | 1 |
4 | woda | 1234 | 2 |
kategorie
id | nazwa |
---|---|
1 | sypkie |
2 | płynne |
ilosc_1
id | ilosc |
---|---|
1 | 3 |
2 | 2 |
3 | 0 |
4 | 8 |
po wywołaniu zapytania chciałbym otrzymać wynik
id | kategoria | nazwa | ean | ilosc |
---|---|---|---|---|
1 | sypkie | cukier | 1234 | 3 |
2 | płynne | mleko | 1234 | 2 |
3 | sypkie | sól | 1234 | 0 |
4 | płynne | woda | 1234 | 8 |
Umiem połączyć 2 tabele tak żeby wyświetlało mi dane produktu i jego ilośc ale nie wiem jak zrobić aby w wyniku zapytania zamiast cyfry odpowiadającej kategorii pojawiała się sama kategoria;/
obecnie moje zapytanie wygląda następujaco:
SELECT i.id, i.nazwa, i.ean, m.ilosc FROM items i JOIN ilosc_1 m USING(id);
ilości są trzymane w osobnej tabeli z tego względu że produkty w każdym magazynie są takie same natomiast ilość danego produktu w danym magazynie jest różna
Jakieś propozycje jak rozwiązać ten problem? na co powinienem zwrócić uwagę ewentualnie co robię źle?
Nasunęło mi się kolejne pytanie co do owych tabel ale pod kontem optymalizacji
Wiedząc że produkty się nie zmieniają (przeglądając tabele z różnych magazynów) a zmienia się jedynie ilość danego produktu czy nie lepiej byłoby wygenerować plik z samą zawartością tabeli produkty (z podpiętymi kategoriami) i pytać tylko o ilości? jak to potem połączyć? i czy takie coś jest możliwe a przede wszystki bardziej optymalne?
Wiadomo, przy dodaniu nowego produktu taki plik kasujemy i generujemy przy pierwszej możliwej okazji ale każda następna osoba już nie musi czekać na wykonanie zapytania sql a jedynie na wczytanie pliku... czy to się opłaca?
Dla ścisłości ilość kategorii produktów liczymy w setkach(200-300) ilość samych produktów może dojść do tysięcy a ilość magazynów to około 20