Chriss007 Geschrieben 22. Mai 2002 Geschrieben 22. Mai 2002 Hi! Hab mal eine etwas einfachere Frage: Also, ich habe eine Tabelle (Tab1) mit einem Primärschlüssel welcher auf drei Spalten gelegt ist. Außerdem habe ich noch eine Tabelle (Tab2), welche eine der selben Spalten aus Tab1 besitzt. Auf diese Spalte in Tab2 ist ein Primary Key sowie ein Foreign Key, welcher auf dieselbe Spalte in Tab1 zeigt, gelegt. Nun zu dem Problem: Ich möchte aber nur eine Spalte aus Tab1 vergleichen. Da in der Tabelle aber die drei Spalten als Primary Key angegeben sind, versucht SQL immer die drei Spalten zu vergleichen. Ich möchte aber nur eine der drei. Gibt es irgendeine andere Möglichkeit (einen zweiten Primärschlüssel(?) oder noch einen anderen Key?) womit ich das Problem lösen kann? Würde mich um Antworten freuen! Danke im Voraus! MfG Chriss Zitieren
Schledo Geschrieben 22. Mai 2002 Geschrieben 22. Mai 2002 Möglich das es bei mir am Verständnis mangelt, aber (wie) kann man einen Primärschlüssel auf mehrere Spalten verteilen ? Zitieren
Chriss007 Geschrieben 22. Mai 2002 Autor Geschrieben 22. Mai 2002 So kann mans! ;-) : create table ZUORDNUNG ( BESTELLUNGSNUMMER INTEGER not null, ARTIKEL_NAME VARCHAR2(30) not null, MENGE INTEGER, constraint PK_ZUORDNUNG primary key(BESTELLUNGSNUMMER, ARTIKEL_NAME) ) / Zitieren
HELLmut Geschrieben 22. Mai 2002 Geschrieben 22. Mai 2002 das geht auch so ganz normal - zwei spalten markieren und schlüssel drauf tun... is halt gedacht wenn man aus zwei spalten eine eindeutige kombination bekommt, nicht aber aus einer der beiden... Zitieren
Tiana Geschrieben 22. Mai 2002 Geschrieben 22. Mai 2002 Hi, mit welcher DB arbeistest Du denn? Gruß Tiana Zitieren
Chriss007 Geschrieben 22. Mai 2002 Autor Geschrieben 22. Mai 2002 Arbeite mit einer Oracle DB also SQL. Zitieren
Tiana Geschrieben 22. Mai 2002 Geschrieben 22. Mai 2002 Hi, na SQL war mir schon klar. Also bei Access z.B. hätetst Du die Möglichkeit gehabt die anderen beiden Felder auszublenden. OK, also. Da die DB versucht immer alle Schlüsselfelder zu vergleichen, gehe ich davon aus, dass Du mit einem Designer arbeitest??? Ansonsten verstehe ich dein Problem nicht, da Du doch dein Ergebnis mit einem einfachen SQL-Statement erreichen könntest (oder ist Oracle so anders???). SELECT * FROM TBL1,TBL2 Where TBL1.Feld=TBL2.Feld Oder??? Gruß, Tiana Zitieren
Chriss007 Geschrieben 22. Mai 2002 Autor Geschrieben 22. Mai 2002 Mein Vorgesetzter hat mir grad einen Tipp gegeben: Select Telefonnummer from Tiana where Alter >= 18 and Groesse like '1,80m' and Oberweite between 70 and 100; Deine Lösung ist zwar ganz okay, aber damit wäre das per Software abgesichert und das ist nicht sooo toll. Ich versuchs jetzt mit sogenannten alternativen Schlüsseln. Das sind keine richtigen Primär-Schlüssel, erzwingen aber trotzdem eine Eindeutigkeit. Einen richtigen Primär-Schlüssel leg ich dann nur auf die Spalte, die ich vergleichen will. Trotzdem Danke für deine Hilfe! Zitieren
Tiana Geschrieben 22. Mai 2002 Geschrieben 22. Mai 2002 Hi, kein Problem. Bin leider kein ORACLE-Spezialist, aber manchmal reichen ja auch die bescheidenen SQL-Kenntnisse aus! Gruß, Tiana Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.