Autor Zpráva
Poll55
Profil *
Dobry den,
Snazim se navrhnou optimalni databazi pro eshop.
Mam tabulku s produkty a tabulku s kategoriemi. Ted resit problem s tim, ze kdyby kazdy produkt spadal pod jednu kategorii, tak bych do tabulky profukty pridal sloupecek kategorie a do ni vzdy Id dane kategorie. Bohuzel situace je jina ten samy produkt muze byt i v nekolika kateforiich. Bohuzel nevim v kolika.. Nemate s timhle nejake zkusenosti ? Neprijde mi rozumne, abych mel treba 30 sloupecku na mozne katerorie.

Dekuji
Kcko
Profil
tabulka
--
produktID | kategorieID


tabulka
--
produktID | nazev | cena ...

tabulka
--
kategorieID | nazev | ...
Poll55
Profil *
Mno jo, ale jak pak budu vyhledávát. neumím hledat produkty, které mají cenu pod 10000 a zároven jsou v dané kategorii.

Díky
__construct
Profil
Poll55:
Bolo by to nejak takto:
SELECT 
    niečo
FROM `produkty`
WHERE `cena` < 10000
AND `id_kategoria` = nejaké číslo;

Keďže nevieš zostaviť ani takýto jednoduchý dotaz tak sa budeš asi musieť naučiť SQL, alebo si zaplatiť niekoho kto Ti to urobí…
↓ Áno, máš pravdu - nevšimol som si To. On urobil návrh kde môže byť jeden produkt vo viacerých kategóriách
Poll55
Profil *
Ale podle Kcko

mám celkem tři tabulky. Jednu produktů, druho kategorií a třetí kde jsou spárované. a to tvym dotazem nedostanu.
Kajman_
Profil *
SELECT p.*
FROM `produkty` p
JOIN `produkty_v_kategorii` pk
ON p.`produktID`=pk.`produktID`
WHERE p.`cena` < 10000
AND pk.`kategorieID` = 42
Poll55
Profil *
To vypadá hezky můžete mi prosím popsat co to znamená?

Select p.* // znamená vyber vše z tabulky produkty
FROM `produkty` p // p je jakási proměnná že se jedná o položku z tabulky produkty
JOIN `produkty_v_kategorii` pk // Otevři pro práci také tabulku produkty_v_kategorii a nahraj ji do proměnné pk
ON p.`produktID`=pk.`produktID` //Tomuhle nerozumím
WHERE p.`cena` < 10000 //podmínka že položky v tabulce produkty mají cenu menší než 10000
AND pk.`kategorieID` = 42 // A zároveň v tabulce produkty_v_kategorii je kategorie rovna 42?

Prosím o vysvětlení řádku 4 Díky
xmark
Profil
SELECT * FROM a JOIN b ON a.x = b.y

Připojení tabulky b na základě podmínky definované za ON. Stačí si kliknout na JOIN v Kajmanově příspěvku.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0