Willkommen in der Webstatt Zum Webstatt Blog und Stories
sili sili am 24.06.10 16:50

Hallo
Mal schauen, ob hier noch jemand anzutreffen ist ;)

Ich habe eine Relation mit den Attributen a,b,c. Nun würde ich gerne überprüfen, ob es Einträge gibt, die folgendes erfüllen:

1) b=u, c=1
2) b=v, c=2
3) b=w, c=3

a soll jeweils in allen Einträgen identisch sein.

Als Resultat hätte ich gerne ein/das a, für welches es die Einträge 1), 2) und 3) sowie keine weiteren gibt. Leider komme ich bei meiner Abfrage nicht weiter. Kann mir jemand helfen? :)


edit: Ich habe es inzwischen so gelöst:
SELECT a from R WHERE a IN (
SELECT a
FROM R
WHERE
a IN (
SELECT a
FROM `R`
WHERE b='...' AND `c`=1) AND
a IN (
SELECT a
FROM `R`
WHERE b='...' AND `c`=2)
....
)


Allerdings ist das keine gute Lösung wenn man bedenkt, dass das ursprüngliche Beispiel massiv vereinfacht wurde. Im konkreten Fall besteht die Datenbank aus drei Relationen und es können sehr viel mehr als nur drei Vergleichswerte herangezogen werden. Ausserdem musste ich es nun mit einer View lösen. Dies würde ich gerne umgehen.

Weitere Ideen sind also wünschenswert ;)

netcup.de Warum gibt es hier Werbung?
nuit nuit am 08.08.10 22:15

liegt irgendwie schon ewig zurück....aber mir fällt grad ein: kann man es vielleicht auch über normale ORs lösen? du greifst ja eh immer auf dieselbe datenbank zurück....d.h. könnte doch sowas gehen

SELECT `a` from `R` WHERE (`b`='...' AND `c`=1) OR (`b` ='...' AND `c`=2)...

sollte doch gedanklich auch gehen...oder seh ich dein problem falsch?

edit: ahhh problem falsch verstanden, sorry :) ich sehe das problem....damned...vergiss da oben drüber..schnappsidee

kannst du es nicht irgendwie über ein unique oder join lösen...das könnte noch funktionieren...d.h. du sammelst alle einträge und schraubst sie über a mal zusammen...(grober gedankengang)

sili sili am 09.08.10 10:34

Quote
Original von nuit
kannst du es nicht irgendwie über ein unique oder join lösen...das könnte noch funktionieren...d.h. du sammelst alle einträge und schraubst sie über a mal zusammen...(grober gedankengang)

Das Problem ist, das ganze müsste (fast) in Echtzeit und sehr schnell überprüfbar sein.
Da diese Anforderung nicht sehr wichtig ist, habe ich es mittlerweile einfach weggelassen ;)

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt