Autor Zpráva
radas
Profil *
Zdravim,
potřeboval bych upravit sql dotaz
původní a špatný - najede 8 knih

SELECT books.*  FROM books ,parametr 
WHERE books.stock > 0 AND books.id=parametr .object_id AND ((  parametr.term_id=236) OR ( parametr.term_id=21) OR  ( parametr.term_id=169) OR ( parametr.term_id=22)) group by books.id

takto nenajde žádnou knihu

SELECT books.* FROM books ,parametr 
WHERE books.stock > 0 AND books.id=parametr .object_id AND  ((  parametr.term_id=236) AND( parametr.term_id=21) AND ( parametr.term_id=169) AND( parametr.term_id=22)) group by books.id

a mělo by to najit jen knihy které maji všechny 4 parametry a nevím kudy kam.. :(
Kajman
Profil
Mrkněte na Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení položek mající všechny hledané vlastnosti

V prvním dotaze možná bude stačit připsat na konec
having count(distict  parametr.term_id)=4
protože mysql je občas nakonfigurována s ignorací chyb při výpisu sloupců nezahrnutých do groub by a neobalených agregační funkcí.
radas
Profil *
Dekuji to je presne ono ;-)

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:

0