Kiválasztani azokat a termékeket, amik meg vannak jelölve A és B címkével, de nincs rajtuk C címke
Szóval a problémám:
Termékek tábla (minden tábla egyszerűsítve)
- termekid
- termeknev
Címkék tábla
- cimkeid
- cimkenev
Kettőt összekapcsoló tábla
- termekid
- cimkeid
Ezek után szeretnék olyan lekérdezést fabrikálni, ami kiválasztja a termékek táblából mindazon bejegyzéseket, amelyek rendelkeznek A1 és A2 és ..., de nem rendelkezik B1 és B2 és ... címkékkel.
Milyen lekérdezés képes ezt az eredményt adni?
■ Termékek tábla (minden tábla egyszerűsítve)
- termekid
- termeknev
Címkék tábla
- cimkeid
- cimkenev
Kettőt összekapcsoló tábla
- termekid
- cimkeid
Ezek után szeretnék olyan lekérdezést fabrikálni, ami kiválasztja a termékek táblából mindazon bejegyzéseket, amelyek rendelkeznek A1 és A2 és ..., de nem rendelkezik B1 és B2 és ... címkékkel.
Milyen lekérdezés képes ezt az eredményt adni?
+ még valami
volt
Join
apró trükk
Ki tudod választani azokat, amik B1 és B2 címkéjűek.
Az
én is ;)
Nekem ez
Ki tudod választani azokat, amik A1 és A2 címkéjűek.
Ki tudod választani azokat, amik B1 és B2 címkéjűek.
Mindkét lista tartalmazza a termék id-ket, majd azt mondod, hogy kiválasztod az összes terméket, ahol "id in (elso select) and id not in (masodik select)".
A probléma ezzel csak az, hogy optimálisnak messze sem nevezhető, olykor igen sokáig futó queryket is eredményezhet.
aggregátor függvény postgresben
hali
A1 = 1, A2 = 2, B1 = 3, B2 = 4 a tagek eseteben
-cs-
Sanyi
ez és helyett vagy
...
szerk: talaltam egy negyeset is, azon is atmegy :-)
-cs-
Sanyi
Köszönöm a válaszokat, sajnos