Webstatt.org - Community seit 2006 - 2012 (2024?)

Mehrere Tupel auslesen und vergleichen

Avatar user-300
24.06.2010 14:50

Hallo
Mal schauen, ob hier noch jemand anzutreffen ist zwinkern

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? lächeln


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 zwinkern

Avatar user-271
08.08.2010 20: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 lächeln 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)

#!/bin/bash
traurig){ neutral:& };:
Avatar user-300
09.08.2010 08:34

Original von user-271
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 zwinkern