Jackery IFA Fireplace

SQL Ergebnis von Daten über mehreren Zeilen

UltiSalamander

Lieutenant
Registriert
März 2010
Beiträge
536
Hallo miteinander!

Ich habe eine Tabelle vorliegen, die etwa wie folgt aussieht:
Code:
Bezeichnung | Schlagwort

[COLOR=DarkSlateGray]nr1000[/COLOR] | [COLOR=Navy]blau[/COLOR]
[COLOR=DarkSlateGray]nr1000[/COLOR] | [COLOR=Red]rot[/COLOR]
[COLOR=Orange]mr9001[/COLOR] | [COLOR=Navy]blau[/COLOR]
Jetzt muss ich eine Bezeichnung herausfinden (in diesem Fall nr1000) die auf mehrere Schlagwörter passt, d.h. bei Suche nach blau und rot soll nur nr1000 treffen.

Realisiere ich bspw. ein "IN" auf alle angegebenen Tags wird auch mr90001 getroffen, da blau ja auch in rot und blau vorkommt.

Wie kann ich realisieren dass bei blau und rot nur nr1000 getroffen wird?

Danke im Voraus für Antworten,
UltiSalamander
 
Zuletzt bearbeitet:
Eine Möglichkeit wäre einfach zwei mal Abfragen und diese dann miteinander vergleichen wie z.B. 'SELECT * FROM Tabelle WHERE Schlagwort = 'blau' KEYWORD SELECT * FROM Tabelle WHERE Schlagwort = 'rot' . Sowas kann man auch direkt in eine Abfrage verschalten ala 'SELECT * FROM Tabelle WHERE Schlagwort IN (SELECT * FROM ...)' oder ähnliches.

Für KEYWORD fallen mir jetzt gerade keine gültigen SQL Bezeichnungen ein. Es gibt verschiedene um auf Gleichheit (Überschneidung), Ungleichtheit etc. zu prüfen. Hmm, wie hieß das noch mal.

[Nachtrag]
Ahh, es ist mir wieder eingefallen. Keywörter sind u.A. UNION (Vereinigungsmenge), INTERSECT (Schnittmenge), EXCEPT (Differenzmenge?) und JOINS. Hier die Wikipedia Einträge auf Deutsch (http://de.wikipedia.org/wiki/Menge_(Mathematik)) und Englisch (http://en.wikipedia.org/wiki/Set_(mathematics)#Unions).

Ich würde mir das jetzt erst einmal visualisieren. Du machst zwei Abfragen, das eine auf die Farbe blau und eine andere auf Farbe rot. Wie sehen die die erhaltenen Record Sets aus. Wie willst du diese dann logisch verknüpfen? Willst du, wie du gesagt hast, NUR finden wo alle Schlagwörter gültig sind, dann wäre die Abfrage ein INTERSECT.

Schau dir bitte in der Dokumentation deiner Datenbank an ob sie INTERSECT kann und wenn ja, wie genau sie vergleicht (z.B. über die ganze Zeile).
 
Zuletzt bearbeitet:
Danke! Mit einem INTERSECT auf die Bezeichnung komme ich auf das gewünschte Ergebnis.
 
Zurück
Oben