Autor Zpráva
Prkny
Profil
Dobrý den, prosím o pomoc s dotazem.
Mám následující tabulku:

id, id_parametru, id_zbozi
8     12     16789
9     9     16789
10     4     16634
11     9     16634
12     4     16627
13     8     16627
14     4     16626
15     7     16626

Potřebuji vypis zboží, aby vysledek byl např. 16626:
Mám id_parametr 4 a 7
dotaz typu: SELECT id_zbozi FROM parametry_zb WHERE (id_parametru='4') AND (id_parametru='7') je špatně, jak se tedy na to zeptat, aby když mám id_parametru např. 4 a 7 tak to ukázalo 16626 ?
David1256
Profil
$zbozi = mysql_query("SELECT * FROM parametry_zb where (id_parametru='4') AND (id_parametru='7') ORDER BY id");
 while($row = mysql_fetch_array($zbozi) )
  echo $row['id_zbozi'];
Toto by ti mělo vypsat všechny id zboží, u kterých je parametr 4 a 7.
Darker
Profil
Co tam dát OR místo and?
SELECT id_zbozi FROM `parametry_zb` WHERE id_parametru=4 OR id_parametru=7
Nicméně ty asi chceš obecně řádky se stejným id_zbozi.
Tori
Profil
Prkny:
Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení položek mající všechny hledané vlastnosti
Prkny
Profil
David1256:
toto bohužel nic nevypíše

Darker
Když se tam dá OR tak to třeba vypíše zboží které obsahuje 4 ale neobsahuje 7

Tori:
podle toho odkazu jsem vypotil toto, ale je to také špatně, vypíše to i zboží které má id_parametru 4 a 8
select id_zbozi
from parametry_zb
where  id_parametru in (4,7)
group  by id_zbozi



přehlédl jsem zbytek, toto asi funguje
select id_zbozi
from parametry_zb
where  id_parametru in (4,7)
group  by id_zbozi
having count(distinct id_parametru) = 2

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: