Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se koná výstava fotografií Luďka Vojtěchovského?

V dnešní soutěži hrajeme o:



Kombinovaný SELECT

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Kombinovaný SELECT

Autor: peta1 ♂

13:17:51 06.06.2014

http://stackoverflow.com/questions/17362148/mysql-get-products-having-all-attributes-listed
tady resi neco podobneho.
Do google jsem zadal = mysql select product attributes

Citovat příspěvek

 

Re: Kombinovaný SELECT

Autor: peta1 ♂

13:04:09 06.06.2014

SELECT * FROM produkty LEFT JOIN parametry ON (produkty.id=parametry.id_produkt) WHERE (sloupec=delka AND hodnota=100) AND (sloupec=sirka AND hodnota=10)

SELECT *
FROM produkty a
LEFT JOIN parametry b ON b.id_produkt = a.produkt
WHERE b.sloupec=b.delka AND b.hodnota=100 AND b.sloupec=b.sirka AND b.hodnota=10 -- Tohle mas cele nejake divne, protoze tohle plati pro jeden radek, jenze ty to mas roztahane na vic radku. Takze bys tu tabulku musel prekopat pro jeden radek.

EAV model
http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model
- zajimave, nevedel jsem, ze to jde resit primo pres db.

Ja bych udelal asi nejaky subselect typu, ze spocitat pocet vsech nalezenych parametru a parametru ktere vyhovuji podminkam a na zaklade toho to prida nebo neprida do vysledku. Pak je tu moznost to spojit do radku pomoci GROUP_CONCAT. Schematicky nejak takhle. (ale ja jsem amater, to by chtelo se zeptat mozna Kajmana na doskuzi na jakpsatweb.cz)

a = SELECT parametry a COUNT(*) AS x pro id=123

SELECT (*)
FROM produkty LEFT JOIN ...
GROUP BY id
WHERE
(SELECT COUNT(*) FROM a) == SELECT COUNT(*) FROM a WHERE ...

Citovat příspěvek

 

Re: Kombinovaný SELECT

Autor: Peet ♂

8:17:16 04.06.2014

Již vyřešeno - použit EAV model. Kdyby náhodou měl někdo vhodnější návrh jak to usělat bez EAV, sem s ním. Dík Peet

Citovat příspěvek

 

Kombinovaný SELECT

Autor: Peet ♂

14:48:44 03.06.2014

Zdravim, chtěl jsem se zeptat jak dostat z tabulky podmínkou více řádku jednoho společného identifikátoru. Mám dvě tabulky - jedna produkty, druhá parametry.

tab produkty ma id | nazev
tab parametry ma id_produkt | sloupec | hodnota

zapis v produktech 1 | produkt_1, 2 | produkt_2
zapisy v parametrech 1 | delka | 100, 1 | sirka | 10, 1 | vyska | 30,2 | delka | 120, 2 | sirka | 20, 2 | vyska | 60

Já potřebuju ven dostat položku, která má delku 100 a sirku 10, zápis mám:

SELECT * FROM produkty LEFT JOIN parametry ON (produkty.id=parametry.id_produkt) WHERE (sloupec=delka AND hodnota=100) AND (sloupec=sirka AND hodnota=10)

to mi ale vyhodi 0 zaznamu. Můžete mě nakopnout jak by to mělo správně být? Moc dík Peet

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: