Autor Zpráva
Pietro
Profil
Zdravim.
Mam tabulku soubor, u které nás zajímá jenom její id. Pak mám tabulku ciselniky, která má dva sloupce id_soubor a id_hodnota.
Věc se má tak: při přidávání souboru můžu zakliknout v select (multiple) více vlastností jednoho souboru:
vlastnost A - hodnoty 1 2 3 a 5
vlastnost B - hodnoty 10 12 13 15
atd.

Vse se mi ulozí do ciselniky vzdy jako dvojice id souboru a id hodnoty. (Tzn. ze pro tento pripad by se mi pro soubor s id 1 vlozilo 8 řádek).

Teď je však chci vyhledávat. Zakliknu, že chci najít všechny vlastnosti A 1 a 2 a všechny vlastnosti B, které mají vlastnost třeba 11.
To znamena:
(1 OR 2) AND (11). Mysql by neměl vrátit žádný výsledek.

Jenomže nemůžu přijít na ten správný sql dotaz. Máte nápady? Prosím prosím
Kajman_
Profil *
select * from soubor
where id in (select id_soubor from ciselniky where id_hodnota in (1,2)
-- tohle jen kdyz chcete, aby to melo hodnotu 1 a zaroven 2 (celkem dva radky)
-- group by id_soubor having count(distinct id_hodnota)=2
)
and id in (select id_soubor from ciselniky where id_hodnota in (11))


Ale těžko říct, jak rozlišujete A a B - na to by ve where měla být podmínka též.

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: