Ich versuche, nach Datensätzen zu suchen, die gemeinsame Beziehungen haben. Um unentgeltlichen Kontext zu vermeiden, hier ist ein hypothetisches Beispiel von meinem Lieblings-alten Schule Nintendo-Spiel:Wie frage ich nach Datensätzen, die alle die gleichen Beziehungen haben (MS Access)?
eine Tabelle von Boxer Bedenken Sie:
tableBoxers
ID | boxerName
----------------
1 | Little Mac
2 | King Hippo
3 | Von Kaiser
4 | Don Flamenco
5 | Bald Bull
Jetzt habe ich eine Beziehungstabelle, die sie zusammen
LinksboxingMatches
boxerID1 | boxerID2
-----------------------
1 | 3
2 | 5
2 | 4
5 | 1
4 | 1
Da will ich nicht zwischen ID1 und ID2 unterscheiden, erstelle ich eine Abfrage, die UNIONs sie zusammen:
SELECT firstID AS boxerID1, secondID AS boxerID2 FROM
(
SELECT boxerID1 AS firstID, boxerID2 AS boxerID FROM boxingMatches
UNION ALL
SELECT boxerID2 AS firstID, boxerID1 AS secondID FROM boxingMatches
) ORDER BY firstID, secondID
ich:
queryBoxingMatches
boxerID1 | boxerID2
-----------------------
1 | 3
1 | 4
1 | 5
2 | 4
2 | 5
3 | 1
4 | 1
4 | 2
5 | 1
5 | 2
Jetzt habe ich VBA-Skript, wo ein Benutzer die Boxer wählen kann er interessiert ist Lassen Sie uns sagen, dass er wenig Mac (1) und König Hippo (2) auswählt.. Dies wird in eine temporäre Tabelle angefügt:
summaryRequest
boxerID
--------
1
2
Tabellen- [summaryRequest] und [queryBoxingMatches], wie ich den kleinen Mac (1) und König Hippo (2) Sie herausfinden, haben sich gegen ähnlich gekämpft? Das Ergebnis sollte Bald Bull (5) und Don Flamenco (4) sein.
Bedenken Sie, dass [summaryRequest] 0 oder mehr Datensätze haben könnte. Ich habe ein INTERSECT in Betracht gezogen, aber ich bin mir nicht sicher, ob das die richtige Funktion dafür ist. Ich habe versucht, COUNT auf viele Arten zu verwenden, aber es gibt unerwünschte Daten, wenn es mehrere Beziehungen gibt (z. B. wenn Little Mac zweimal gegen Bald Bull kämpfte und King Hippo ihn nur einmal bekämpfte).
Ich kann nicht helfen, aber fühle mich wie die Antwort ist schlicht und einfach und ich überdenke es nur. Jede Hilfe wird geschätzt. Vielen Dank.
'COUNT' klingt wirklich gut, was hast du damit versucht? – Bulat