Ich habe eine Folgefrage zu einer Frage, die ich zuvor zu SO gestellt habe.
Anstelle der Abfrage aus meiner ursprünglichen Frage möchte ich Folgendes in relationale Algebra konvertieren:
Listen Sie die Namen und Telefonnummern der Bieter auf, die nicht immer von Doppelgeboten betroffen sind.
Hinweis: Doppelgebote treten auf, wenn zwei verschiedene Bieter denselben Preis für denselben Artikel bieten.
Ich habe einige Ideen, wie ich vorgehen soll:
- Finde alle Bieter mit Doppelgebot (1)
- Finde alle Bieter, die ein Gebot haben, das nicht doppelt bietet (2)
- Finde alle Bieter, die noch nie ein Doppelgebot abgegeben haben (3)
Von hier aus kann ich den Schnittpunkt von (1) und (2) erhalten und (3) zu diesem Schnittpunkt hinzufügen, um die endgültige Antwort zu erhalten. (Das ist mein Denkprozess, bitte korrigieren Sie mich, wenn ich falsch liege)
Ich habe keine Probleme damit, alle Bieter zu finden, die ein Doppelgebot abgegeben haben, aber die daraus resultierenden Ideen verwirren mich ziemlich. Dies ist, was ich für "alle Bieter, die ein doppeltes Gebot haben" habe:
BID⨝ITEM - (Q1)
Q1 ⨝ ρ Gebot → Gebot ', iid → iid', Preis → Preis ' (Q1) - (Q2)
π Gebot (σ Gebot! = Gebot ' (Q2) ∧ σ Preis = Preis' (Q2) ∧ σ iid = iid ' (Q2)) - (Q3)
Wie verwende ich dies, um die Bieter zu finden, die nicht immer von Doppelgeboten betroffen sind?
Der fettgedruckte Text dient übrigens lediglich der Kennzeichnung und ist nicht Teil der Antwort.