Autor Zpráva
sopel
Profil *
Zdravím,

mám teď problém s vyhledáváním ze 2 tabulek, kdy se snažím z jedné tabulky vyčíst objekty a podle filtrovaných vybraných dat vyčíst data z druhé tabulky.
Tedy na ukázku mám dvě tabulky

1) tabulka_objektu ( objekt_id, nazev, nazevurl, datum_pridani ... )
2) tabulka_hodnot ( id_objektu, id_hodnoty, hodnota )

V tabulce tabulka_hodnot má každý objekt několik údajů ( uvádím příklad tabulky tabulka_hodnot )
id_hodnoty = 1(typ objektu) / hodnota = 3 (byt) 
id_hodnoty = 3(velikost) / hodnota = "150" (150m2)

A konečně, když chci vyhledat všechny objekty ( z tabulky tabulka_objektu ) , která mají výše uvedené hodnoty, tak už mi to nenajde.
Najde mi to pouze pokud vyberu jen jednu hodnotu ( tedy např. jen ten typ objektu a že je to byt.. podle dalších hodnot to již nevyhledá )


SELECT hodnoty.*, objekty.* 
                        FROM tabulka_hodnot AS hodnoty
                            INNER JOIN tabulka_objektu AS objekty
                                ON hodnoty.id_objektu = objekty.id
                                    WHERE ( (id_hodnoty='1' AND hodnota='10') AND (id_hodnoty='12' AND hodnota='223' )  )
                                        ORDER BY objekty.datum_pridani DESC LIMIT 0, 20; 


Díky za rady (y)
Kajman
Profil
Na jednom řádku nemůže být přeci ve sloupci id_hodnoty 1 i 12 zároveň, proto nic nenajde. Ve where má být podmínka OR místo AND. Pak se data seskupí a vyberou se jen ta, kde jsou oba řádky.

Mrkněte na Diskuse JPW: Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení položek mající všechny hledané vlastnosti je tam i odkaz na variatu s dvěma parametry.

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