Geht folgendes ohne Subqueries
-
Gruppe | ID ------------- A | 3 A | 4 B | 2 B | 1 C | 1 D | 4 E | 7 A | 1 F | 1 A | 2
Jetzt will ich alle IDs, wenn sie gemeinsam in mehreren Gruppen sind, also mit UND Verknüpft.
z.B. in Gruppe
A und B und C. => ID = 1
A und B => ID 1, 2
A und D => ID 4
A und E => keine
(immer nur eine Verknüpfung pro Abfrage, nicht alle auf einmal)
Die Gruppen können beliebig verknüpft werden und beliebig viele sein.Geht das ohne Subqueries?
-
Queries automatisch zusammenbauen ist OK.
-
Mit einer festen Anzahl an Gruppen wäre es möglich:
//Kombination A und D SELECT list1.id FROM tabelle AS list1, tabelle AS list2 WHERE list1.id=list2.id AND list1.gruppe='A' AND list2.gruppe='D' //Kombination A, B und C SELECT list1.id FROM tabelle AS list1, tabelle AS list2,tabelle AS list3 WHERE list1.id=list2.id AND list1.id=list3.id AND list1.gruppe='A' AND list2.gruppe='B' AND list3.gruppe='C'
(eventuell kannst du auch einen INNER JOIN verwenden)
-
OK. Intern verwendet das aber wahrscheinlich auch wieder mehrere selects um an die "Listen" zu kommen, oder?
-
autorun schrieb:
OK. Intern verwendet das aber wahrscheinlich auch wieder mehrere selects um an die "Listen" zu kommen, oder?
Nein, ein Kreuzprodukt
(btw, hat es einen besonderen Grund, daß du etwas gegen Subqueries hast? Wenn du der Datenbank Arbeit abnehmen willst, hol dir doch die komplette Tabell und werte sie von Hand aus - dürfte aber etwas aufwendiger sein als das, was SQL anbietet)
-
mir wurde gesagt die sind zu langsam