Autor | Zpráva | ||
---|---|---|---|
sniclman Profil * |
#1 · Zasláno: 1. 8. 2011, 10:28:45
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 |
#2 · Zasláno: 1. 8. 2011, 10:43:02
sniclman:
bylo by vhodné ukázat ten tvůj dotaz + ukázak strukturu tabulek |
||
Jozin Profil |
#3 · Zasláno: 1. 8. 2011, 10:47:15
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 * |
#4 · Zasláno: 1. 8. 2011, 11:02:28
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 ;) |
||
Časová prodleva: 13 let
|
0