An die SQL Gurus...

Elfish

Active member
Themenstarter
Registriert
1 Nov. 2006
Beiträge
1.140
Hi,

ich habe folgendes Problem....

Es handelt sich um 3 Tabellen.

Tabelle1: Produktkombinationen
Felder: Katalogbezeichnung Komponente1_Name Komponente2_Name Datum Stückzahl

Tabelle2: Komponente1
Felder: Komponente1_Name

Tabelle3: Komponente2
Felder: Komponente2_Name

Tabelle 2 und 3 enthalten eine von mir erstelle Auswahl aus möglichen Komponentennamen.
Ich brauche also nicht alle sondern eine eingeschränkte menge.

Ich brauch nun eine Abfrage die mir die tabelleneinträge aus tabelle1 auswählt die folgende merkmale haben
Komponente1_Name und Komponente2_Name MÜSSEN jeweils in Tabelle 2 und 3 vorhanden sein.
Ebenfalls soll ausgewählt werden wenn ein Komponentenname NULL ist der andere aber in Tabelle2 oder 3 vorkommt.

Das ganze soll ich in MS Access machen.
Hat jemand ne idee? ich steht ziemlich auf dem Schlauch :x
 
In mysql dürfte das in etwa so aussehen:

SELECT *FROM table1 WHERE table1.row1 = table2.row1 OR(für den NULL fall) table1.row2 = table3.row1

WOBEI deine Anforderungen irgendwie wiedersprüchlich wirken: Die spalten müssen in den Tabellen 2 + 3vorhanden sein, dürfen aber auch NULL sein ?!
Denn in deiner struktur ist eine NULL spalte gleichbedeutent mit nicht vorhanden.

Wenn wirklich NULL in der Tabelle vorkommen sollen, brauchst du indizes über die Tabellen 2 + 3, die dann den index von tabelle 1 referenzieren.

Edit: ääääh, mach dir in gedanken ein col aus jedem row ;) sonst isses begrifflich nich richtich
 
als daten darf in einem datensatz in den beiden feldern in tabelle 1 auch der wert NULL auftreten.
einer der beiden Komponenten_Namen hat allerdings immer einen wert d.h. 2xNull kommt nicht vor.

[quote='horatio',index.php?page=Thread&postID=552623#post552623]SELECT *FROM table1 WHERE table1.row1 = table2.row1 OR(für den NULL fall) table1.row2 = table3.row1[/quote]

und müsste hier nicht ein AND in der mitte stehen?
es müssen doch beide bedingungen erfüllt sein. (mal die null sache ausgeschlossen...)
 
Achso, nur in Tabelle 1 dürfen die Werte NULL sein, dann passt die Abfrage.

Evtl. gehört da noch ein unique rein, denn es kann passieren, dass eine Zeile doppelt selektiert wird, wenn in beiden spalten ein Wert enthalten ist.
Bin mir da gerade nicht ganz sicher.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben