Autor Zpráva
sniclman
Profil *
Dobrý den,

mám 3 tabulky: 1.zboží ; 2.kategorie ; 3.podkategorie
tabulka zboží obsahuje sloupec 'kategorie' ve kterém se zapisuje kategorie i podkategorie do které patří jako řetězec (příklad: kód zboží="123456" kategorie="1-2" (kategorie 1, podkategorie 2))
(Tabulka podkategorie obsahuje sloupec s hodnotou která udává do které kategorie patří daná podkategorie)

Potřeboval bych vybrat název kategorie i podkategorie (pokud nebude nulová) podle čísla produktu.
S funkcí LEFT JOIN jsem neuspěl.

Můžete mi prosím poradit jak by měl být správný zápis pro SQL dotaz?
Děkuji.
Taps
Profil
sniclman:
bylo by vhodné ukázat ten tvůj dotaz + ukázak strukturu tabulek
Jozin
Profil
sniclman:
Zdravím,

být tebou, tak pokud je to možné ještě předělám návrh databáze... 1-2 je známkou špatného návrhu.

1. Co když kategorie má 5 podkategorií?
2. Ztěžuješ si výběr kategorií. Při každém dotazu budeš muset parsovat kotegorii, aby ses dozvěděl, jestli má/nemá podkategorii

Takže ještě jednou. Prvně si předělej databázi na správný návrh a pak uspěješ i s left join ;)
Ugo
Profil *
SELECT pk.text as pod, k.text as kat  FROM zbozi z LEFT JOIN kategorie k on k.id=(SELECT substring(zbozi.kategorie,1,(SELECT LOCATE('-',zbozi.kategorie) from zbozi where zbozi.id=1)-1) from zbozi where zbozi.id=1) LEFT JOIN podkategorie pk ON pk.id=(SELECT substring(zbozi.kategorie,(SELECT LOCATE('-',zbozi.kategorie) from zbozi where zbozi.id=1)+1) from zbozi where zbozi.id=1)


kdyz to tak moc chces ... mozna lepsi varianta dat si
SELECT LOCATE('-',zbozi.kategorie) from zbozi where zbozi.id=1

do promeny, ale v prvni rade na tohle zapomen a zmen strukturu jeslti je to mozny ;)

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