Autor | Zpráva | ||
---|---|---|---|
sopel Profil * |
#1 · Zasláno: 1. 10. 2015, 10:16:02
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 |
#2 · Zasláno: 1. 10. 2015, 10:22:23
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. |
||
Časová prodleva: 10 let
|
0