Autor Zpráva
neoen
Profil *
Potřeboval bych použít složitější dotaz s několikanásobnou kombinací AND a OR, zkoušel jsem následující:

WHERE pole IN(1,2) AND pole IN (5,6)

aneb potřeboval bych něco ve stylu (pole = 1 OR pole = 2) AND (pole = 5 OR pole = 6) jenomže o dost složitější, takže jsem to zkoušel pomocí IN. Ale výsledky tak bohužel nevypadají, neboť příkaz s pomocí IN asi neodpovídá příkazu bez IN. Nevíte někdo jak na to?

Díky moc...
Alphard
Profil
pole má zřejmě nějakou číselnou hodnotu (1 číslo)
a z toho vyplývá, že (pole = 1 OR pole = 2) AND (pole = 5 OR pole = 6) nemůže být nikdy splněno
neoen
Profil *
Aha, napsal jsem ten příklad asi špatně...

Jde o to, že pole (v podstatě jde o id příspěvku) má nějakou číselnou hodnotu, např. 100 a já se ptám pomocí složitějšího dotazu pomocí JOINu dvou tabulek, zda mu jsou přiřazeny nějaké vlastnosti.

Pokud dám pouze WHERE pole IN(1,2), tak to funguje a vypíší se mi příspěvky, které mají vlastnost 1 OR 2. Ale potřeboval bych to ještě zkombinovat s dalšími podmínkami, kde bude figurovat několikrát AND a OR, takže jsem to zkoušel pomocí IN.

V podstatě tedy potřebuju najít ekvivalentní zápis pro podmínku (pole = 1 OR pole = 2) AND (pole = 5 OR pole = 6) pomocí IN (aneb průnik několika množin výsledků). Zkoušel jsem WHERE pole IN(1,2) AND pole IN (5,6), ale to nevypisuje správné výsledky, narozdíl od od onoho příkazu s AND a OR.

Díky za pomoc...
Kajman_
Profil *
např.

... where id in (select id from tabulka where pole IN(1,2))
and id in (select id from tabulka where pole IN(5,6))
neoen
Profil *
Díky, ale opět to nefunguje :-(
Pokud je tam ten poddotaz pouze jednou, tak to funguje a vypíše to příspěvky s vlastnostmi 1 a 2, ale pokud přidám další poddotaz, tak to nevypíše nic. Pokud dám druhý poddotaz, tak to tké vypíše v pořádku s vlastnostmi 5 a 6. Některé příspěvky mají společné vlastnosti, tedy třeba 1 a 6. A přesně tyhle příspěvky nemůžu pomocí MySQL dostat...
Kajman_
Profil *
Před tím where nesmí být select z tabulky s vlastnostmi, musí se brát z tabulky s příspěvky. Nemůžete najít vlastnost, která je taková i maková. Musíte najít příspěvěk, kterou má takovou i makovou.
neoen
Profil *
Jo, tak to mám.

Pokud použiju WHERE (pole = 1 OR pole = 2) AND (pole = 5 OR pole = 6), tak to funguje.

Pokud použiju WHERE pole IN(1,2) AND pole IN (5,6)
nebo WHERE id in (select id from tabulka where pole IN(1,2))
AND id in (select id from tabulka where pole IN(5,6)), tak to nefunguje a nechápu vůbec proč.

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: