Wieso kann Primärschlüssel nicht abgefragt werden?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Wieso kann Primärschlüssel nicht abgefragt werden?

Re: Wieso kann Primärschlüssel nicht abgefragt werden?

von eve » Mi, 09.03.2011 07:37

Ich habe die Tabelle und die Abfrage jetzt extra noch mal neu erstellt, aber wieder das gleiche. Ich bekomme nur die Fehlermeldung: "„Die Dateninhalte konnten nicht geladen werden. No data is available“.
Aber zumindest weiß ich jetzt, daß es prinzipiell schon möglich sein sollte und der Fehler wo anders liegt. Ich hatte mich nämlich gewundert, warum eine solche Abfrage nicht möglich sein sollte.

Gruß,
eve

Re: Wieso kann Primärschlüssel nicht abgefragt werden?

von hol.sten » Di, 08.03.2011 12:30

eve hat geschrieben:Hier ist der SQL:

Code: Alles auswählen

SELECT "Persons"."LastName", "Persons"."FirstName", "Orders"."OrderNo", "Orders"."O_Id", "Persons"."P_Id" FROM { OJ "Persons" LEFT OUTER JOIN "Orders" ON "Persons"."P_Id" = "Orders"."P_Id" } ORDER BY "Persons"."LastName" ASC
Bei mir erzeugt dieses SQL keinen Fehler sondern folgenden Output:

Code: Alles auswählen

LastName    FirstName    OrderNo    O_Id    P_Id
Hansen      Ola          24562      4       1
Hansen      Ola          22456      3       1
Pettersen   Kari         44678      2       3
Pettersen   Kari         77895      1       3
Svendson    Tove                    0       2

Re: Wieso kann Primärschlüssel nicht abgefragt werden?

von eve » Di, 08.03.2011 12:18

Hier ist der SQL:

Code: Alles auswählen

SELECT "Persons"."LastName", "Persons"."FirstName", "Orders"."OrderNo", "Orders"."O_Id", "Persons"."P_Id" FROM { OJ "Persons" LEFT OUTER JOIN "Orders" ON "Persons"."P_Id" = "Orders"."P_Id" } ORDER BY "Persons"."LastName" ASC

Re: Wieso kann Primärschlüssel nicht abgefragt werden?

von hol.sten » Di, 08.03.2011 10:29

eve hat geschrieben:Allerdings bleibt meine Frage trozdem in etwas abgeänderter Form bestehen. Warum kann mann O_Id nicht abfragen, wenn man zusätzlich P_Id aus einer anderen Tabelle abfragt?
Auch das klappt wunderbar bei mir:

Code: Alles auswählen

SELECT "Persons"."LastName", "Persons"."FirstName", "Orders"."OrderNo", "Orders"."O_Id", "Orders"."P_Id", "Persons"."P_Id" FROM "Persons" LEFT JOIN "Orders" ON "Persons"."P_Id" = "Orders"."P_Id" ORDER BY "Persons"."LastName"
Poste doch mal dein SQL.

Re: Wieso kann Primärschlüssel nicht abgefragt werden?

von eve » Di, 08.03.2011 10:12

Oh, ich hatte nicht nur die Spalte O_Id der Tabelle Orders, sondern auch die Spalte P_Id der Tabelle Persons abgefragt. In dem Fall kommt die Fehlermeldung. Wenn man P_Id aus der Tabelle Orders verwendet, dann geht es. Allerdings bleibt meine Frage trozdem in etwas abgeänderter Form bestehen. Warum kann mann O_Id nicht abfragen, wenn man zusätzlich P_Id aus einer anderen Tabelle abfragt?

Ich benutze übrigens OOo 3.3.0 und Windows XP/SP3

Re: Wieso kann Primärschlüssel nicht abgefragt werden?

von hol.sten » Di, 08.03.2011 08:39

eve hat geschrieben:Sobald ich aber die Spalte O_Id (Primärschlüssel der Tabelle Orders) auch darstellen will, dann bekomme ich die Fehlermeldung: „Die Dateninhalte konnten nicht geladen werden. No data is available“.
Da ich mir nicht vorstellen konnte, warum das nicht funktionieren soll, habe ich das Beispiel mal mit OOo 3.2.0 auf Ubuntu 10.04 mit Java 1.6.0_16 und einer niegel nagel neuen HSQLDB ausprobiert. Und siehe da: Es funzt.

Sowohl:

Code: Alles auswählen

SELECT "Persons"."LastName", "Persons"."FirstName", "Orders"."OrderNo", "Orders"."O_Id"
 FROM "Persons" LEFT JOIN "Orders" ON "Persons"."P_Id" = "Orders"."P_Id"
 ORDER BY "Persons"."LastName"
als auch:

Code: Alles auswählen

SELECT "Persons"."LastName", "Persons"."FirstName", "Orders"."OrderNo", "O_Id"
 FROM "Persons" LEFT JOIN "Orders" ON "Persons"."P_Id" = "Orders"."P_Id"
 ORDER BY "Persons"."LastName"
liefern:

Code: Alles auswählen

LastName    FirstName    OrderNo    O_Id
Hansen      Ola          24562      4
Hansen      Ola          22456      3
Pettersen   Kari         44678      2
Pettersen   Kari         77895      1
Svendson    Tove                    0
Ein Primärschlüssel kann also abgefragt werden. Warum es in deinem Fall nicht klappt lässt sich aber ohne nähere Angaben von dir nicht beantworten.

Re: Wieso kann Primärschlüssel nicht abgefragt werden?

von komma4 » Di, 08.03.2011 08:21

Bei welcher Abfrage (SQL-Code) funktioniert das bei Dir nicht?

OOo Version und Betriebssystem?

Welche Datenbank nutzt Du? Treiber?

Hier klappt eine Abfrage auf einen Primärschlüssel der eingebauten HSQLDB problemlos.

Wieso kann Primärschlüssel nicht abgefragt werden?

von eve » Di, 08.03.2011 07:39

Hallo,

Ich habe da mal eine Verständnisfrage. Ich habe mich in letzter Zeit unter anderem mit folgender Seite weiter in SQL eingearbeitet.
http://www.w3schools.com/SQl/sql_join_left.asp

Die Abfrage dort funktioniert so wie sie dargestellt ist einwandfrei. Sobald ich aber die Spalte O_Id (Primärschlüssel der Tabelle Orders) auch darstellen will, dann bekomme ich die Fehlermeldung: „Die Dateninhalte konnten nicht geladen werden. No data is available“.
Wenn ich jetzt eine extra Spalte O_Id2 mit den Daten anlege und die Abfrage darauf beziehe, dann funktioniert es wieder. Meine Frage ist nun, wieso können die Daten der Spalte O_Id nicht angezeigt werden wenn sie als Primärschlüssel hinterlegt sind?

Gruß,
eve

Nach oben