Autor Zpráva
Lion76
Profil *
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 *
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 *
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 *
Kajman_

Nikdy??? Vzdyt vybiram radky, ktere se rovnaji, t.j. 'nazevParam' = 'hodnotaParam'. Jak by to melo byt spravne podle Vas?
Mastodont
Profil
Ne, nikdy. Název parametru nemůže být zároveň Délka a Šířka, ale jen jedno z toho.
Lion76
Profil *
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 *
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 *
Kajman_

A kolik poddotazu muze byt v hlavnim dotazu?

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: