[MySQL] Slozity dotaz do 4 tabulek najednou
Ahojte,
mam problemek s MySQL databazi viz obrazek.
http://melda.klamovka.cz/mysql.png
Potreboval bych z ni vybrat obchody ktere maji v nabidce napr stoly(tzn obchod 1,2) nebo zidle(pouze obchod 1).
Premyslel jsem nad vselikymi JOINy ale nic spravnyho me nenapadlo. Bylo by reseni vyhledat si to pro kazdy obchod zvlast, tzn vzit si obchod 1, vyhledat jeho produkty z nich typyproduktu a jestlize by obsahoval spravny typ produktu tak ho vypsat. A todle pro kazdy obchod. To se mi zda ale prilis pomale a neohrabane.
Poradil by nekdo? :)
Re: [MySQL] Slozity dotaz do 4 tabulek najednou
Je toto dobre?
Kód:
SELECT obchody.id FROM obchody,obchody_produkty,produkty,typy_produktu
WHERE obchody.id=obchody_produkty.obchod
AND obchody_produkty.produkt=produkty.id
AND produkty.typ=2
Re: [MySQL] Slozity dotaz do 4 tabulek najednou
Nemohol by si tu schemu trochu rozpisat slovami? Ja som z tych vsetkych idcok jelen ... Hlavne z tych dvoch "intersection" tabuliek.
Re: [MySQL] Slozity dotaz do 4 tabulek najednou
Jeste ze te Rainbow mame ;) Diik moc
[Edit] To:steelman
jde o to ze kazdej obchod ma vice produktu a zaroven naky produkt muze nabizet vic obchodu. Takze potrebuju tabulku "obchodyprodukty" kam ulozim to zda konkretni obchod ma konkretni produkt. Mno a kdyz potrebuju vypsat jen obchody s urcitym typem zbozi, tak potrebuju projit vsecky obchody, u kazdeho se podivat ktere zbozi nabizi a kdyz nabizi nami pozadovany typ zbozi tak ho vypsat. Mno a todle zvladne dotaz co napsal Rainbow.
Jeste jednou dik :)
Re: [MySQL] Slozity dotaz do 4 tabulek najednou
Tak jsem se zas zasekl :oops: potreboval bych vybrat obchod ktery prodava zaroven zidle a stoly. V ukazce je to obchod 1.
To znamena ze bych potreboval neco jako GROUP BY obchody.idObchodu
ale s tim abych u nich mohl zjistit zda obashuji urcite mnoziny idTypuproduktu.
Dik za help :)
Re: [MySQL] Slozity dotaz do 4 tabulek najednou
Citace:
Původně odeslal MEluZíNa
Tak jsem se zas zasekl :oops: potreboval bych vybrat obchod ktery prodava zaroven zidle a stoly. V ukazce je to obchod 1.
To znamena ze bych potreboval neco jako GROUP BY obchody.idObchodu
ale s tim abych u nich mohl zjistit zda obashuji urcite mnoziny idTypuproduktu.
Dik za help :)
SELECT obchody.id FROM obchody,obchody_produkty,produkty,typy_produktu
WHERE obchody.id=obchody_produkty.obchod
AND obchody_produkty.produkt=produkty.id
AND produkty.typ IN ('1','2');
Re: [MySQL] Slozity dotaz do 4 tabulek najednou
Bohuzel tohle vybere obchody, ktery maj zidle nebo stoly :(
Potreboval bych vybrat pouze obchody, ktere maji zidle a zaroven stoly.
Re: [MySQL] Slozity dotaz do 4 tabulek najednou
SELECT obchody.id FROM obchody,obchody_produkty,produkty,typy_produktu
WHERE obchody.id=obchody_produkty.obchod
AND obchody_produkty.produkt=produkty.id
AND (produkty.typ=1 AND produkty.typ=2);
enjoy .)
Re: [MySQL] Slozity dotaz do 4 tabulek najednou
To zas nevybere zadny radek:( Jeden produkt by musel byt zaroven ve dvou typech. To neni co potrebuju. Chci vypsat obchody jijichz produkty jsou bud stoly nebo zidle a zaroven tam musi byt alespon jeden produkt typu zidle a jeden prudukt typu stul.
Re: [MySQL] Slozity dotaz do 4 tabulek najednou
Tak jsem prisel na reseni :)
Kód:
SELECT
obchody.id,
GROUP_CONCAT(DISTINCT typy_produktu.name SEPARATOR ';') AS typy
FROM obchody,obchody_produkty,produkty,typy_produktu
WHERE obchody.id=obchody_produkty.obchod
AND obchody_produkty.produkt=produkty.id
AND produkty.typ=typy_produktu.id
GROUP BY obchody.id
HAVING typy like '%zidle%' AND typy like '%stoly%'