Autor | Zpráva | ||
---|---|---|---|
Lion76 Profil * |
#1 · Zasláno: 29. 3. 2008, 10:28:42
Zdravim, potrebuji pomoc s navrhem tabulek pro vyhledavani podle parametru a taky vypisu samotnych parametru. Mam nejakou predstavu, jak by to asi mohlo byt, ale nevim, jestli to ta nejlepsi verze. Budu mit napriklad dve tabulky, specifikace a sablona, ktere budou mit spolecne idecko, abych je mohl spojit.
Struktura tabulky specifikace by byla asi takova: idSpecifikace|idPolozky||idSablony| hodnota 1 | 1 | 1 | 69 cm 2 | 1 | 2 | 108.38 cm 3 | 1 | 3 | 30 cm 4 | 1 | 4 | 29.8 kg Struktura tabulky sablona by byla asi takova: idSablony| kodKategorie | nazeParametru 1 | 001 | Délka 2 | 001 | Šířka 3 | 001 | Hloubka 4 | 001 | Hmotnost kodKategorie je tam proto, aby se vedelo, pro jakou kategorii ta sablona je. Ale jak se tak na to divam, tak ta struktura obou tabulek je spatna, protoze pri spojeni nedocilim pozadovaneho vysledku. Poradi mne prosim nekdo, jak to mam byt spravne? |
||
Lion76 Profil * |
#2 · Zasláno: 30. 3. 2008, 13:58:50
Strukturu jsem uz vyresil, ale ted mam zase problem s dotazem. Vsechny udaje, kterou jsou v podmince jsou i obsazeny v tabulce, ale db nevrati zadny radek. Nevite, cim by to mohlo byt?
SELECT t1.nazevParam AS nazev, t2.hodnotaParam AS hodnota FROM param_sablony AS t1 LEFT JOIN param_hodnoty AS t2 ON t1.idSablony = t2.idSablony WHERE t1.nazevParam = 'Délka' AND t2.hodnotaParam = '50' AND t1.nazevParam = 'Šířka' AND t2.hodnotaParam = '108.30' |
||
Kajman_ Profil * |
#3 · Zasláno: 30. 3. 2008, 22:44:39
Nevite, cim by to mohlo byt?
Protože podmínka WHERE t1.nazevParam = 'Délka' AND t1.nazevParam = 'Šířka' Nemůže být nikdy splněna. |
||
Lion76 Profil * |
#4 · Zasláno: 30. 3. 2008, 23:59:11
Kajman_
Nikdy??? Vzdyt vybiram radky, ktere se rovnaji, t.j. 'nazevParam' = 'hodnotaParam'. Jak by to melo byt spravne podle Vas? |
||
Mastodont Profil |
#5 · Zasláno: 31. 3. 2008, 06:12:54
Ne, nikdy. Název parametru nemůže být zároveň Délka a Šířka, ale jen jedno z toho.
|
||
Lion76 Profil * |
#6 · Zasláno: 31. 3. 2008, 14:35:12
Mastodont
ale jen jedno z toho, dekuji za napovedu. WHERE t1.nazevParam = 'Délka' AND t2.hodnotaParam = '50' OR t1.nazevParam = 'Šířka' AND t2.hodnotaParam = '108.30' Ale zajimalo by mne jeste, jak docilim toho, aby se nevypsal ani jeden radek, kdyz nejsou vsechny podminky splneny. |
||
Kajman_ Profil * |
#7 · Zasláno: 31. 3. 2008, 14:41:21
např.
select * from tabulka where id in (select id where nazev='delka' and hodnota='50') and id in (select id where nazev='sirka' and hodnota='108.30') |
||
Lion76 Profil * |
#8 · Zasláno: 31. 3. 2008, 15:21:39
Kajman_
A kolik poddotazu muze byt v hlavnim dotazu? |
||
Časová prodleva: 16 let
|
0