Autor | Zpráva | ||
---|---|---|---|
Ivorius Profil |
#1 · Zasláno: 17. 11. 2008, 10:43:56
Pro výběr z parametrů používám tento dotaz:
SELECT p.id, p.nazev, GROUP_CONCAT(pc.hodnota SEPARATOR ';) AS seznam_hodnot, GROUP_CONCAT(pc.id SEPARATOR ';') AS seznam_id FROM parametry p JOIN parametry_hodnoty ph ON (p.id = ph.id_parametru) JOIN parametry_ciselniky pc ON (ph.id_ciselniku = pc.id) WHERE p.typ = 'ciselnik' AND ph.id_zbozi = ".intval($_GET['select'])." GROUP BY p.id HAVING count(*) >= 2 Ve zkratce jde o to, že se vyberou všechny parametry, k nim se přidají parametrické číselníky a vypíšou se pouze ty parametry, které mají 2 a více číselníků. Lze nějak zapsat MySQL dotaz tak, abych to nemusel seskupovat a používat GROUP_CONCAT ( který následně za pomocí explode předávám zase do pole) ale přitom se vypsali pouze ty záznamy, kde je 2 a více číselníků? |
||
Kajman_ Profil * |
#2 · Zasláno: 18. 11. 2008, 07:44:07
SELECT p.id, p.nazev, pc.hodnota, pc.id pcid FROM parametry p JOIN parametry_hodnoty ph ON (p.id = ph.id_parametru) JOIN parametry_ciselniky pc ON (ph.id_ciselniku = pc.id) JOIN (select p.id from parametry p2 JOIN parametry_hodnoty ph2 ON (p2.id = ph2.id_parametru) JOIN parametry_ciselniky pc2 ON (ph2.id_ciselniku = pc2.id) WHERE p2.typ = 'ciselnik' AND ph2.id_zbozi = ".intval($_GET['select'])." group by p2.id having count(*)>=2 ) t on (p.id=t.id) WHERE p.typ = 'ciselnik' AND ph.id_zbozi = ".intval($_GET['select'])." |
||
Časová prodleva: 15 let
|
0