Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL (https://www.delphipraxis.net/50477-sql.html)

Chester 26. Jul 2005 11:48

Datenbank: Oracle • Zugriff über: Oraclekomponenten

SQL
 
Ich möchte einen Datensatz in einer Tabelle hinzufügen, aber ich greife über eine Query auf zwei Tabellen zu.
So schaut mein SQL aus: Select t.*, TABZWEISP, TABZWEILP, t.rowid from TABELLEEINS t, TABELLEZWEI
Und wenn ich 'Post' sagen kommt der Fehler "TABZWEISP besitzt keinen Wert", aber ich habe rowid nur bei der ersten Tabelle???? :?:

shmia 26. Jul 2005 12:28

Re: SQL
 
Zitat:

Zitat von Chester
Ich möchte einen Datensatz in einer Tabelle hinzufügen, aber ich greife über eine Query auf zwei Tabellen zu.
So schaut mein SQL aus: Select t.*, TABZWEISP, TABZWEILP, t.rowid from TABELLEEINS t, TABELLEZWEI
Und wenn ich 'Post' sagen kommt der Fehler "TABZWEISP besitzt keinen Wert", aber ich habe rowid nur bei der ersten Tabelle???? :?:

Deine Query ist ein CROSSJOIN; d.h. jeder Datensatz aus TABELLEEINS wird mit jedem Datensatz aus TABELLEZWEI kombiniert.
So eine Abfrage ist nicht Updatefähig. Du kannst also nicht die Daten aus 2 Tabellen zusammenwürfeln und
annehmen der DB-Treiber könnte Änderungen in die richtige Tabelle zurückschreiben.

Das Feld t.rowid ist übrigens doppelt in der Feldliste. Die Angabe t.* liefert nämlich
auch schon das Feld rowid.

Jasocul 26. Jul 2005 13:19

Re: SQL
 
Zitat:

Zitat von shmia
Das Feld t.rowid ist übrigens doppelt in der Feldliste. Die Angabe t.* liefert nämlich
auch schon das Feld rowid.

Muss ich widersprechen. t.* liefert die rowid nicht mit.

Jelly 26. Jul 2005 15:58

Re: SQL
 
Zitat:

Zitat von Chester
SQL-Code:
Select t.*, TABZWEISP, TABZWEILP, t.rowid from TABELLEEINS t, TABELLEZWEI

Aus was für Tabellen sind denn TABZWEISP und TABZWEILP... Wenn du schon mit Aliasen (nennt man das so, die Mehrzahl von Alias :gruebel: ) arbeitest (siehe TABELLEEINS t), dann aber auch konsequent und überall über all deine Tabellen.

Aber Update wirst du die Abfrage trotzdem nicht können. Da musst du schon einen INNER JOIN einbauen, sonst wird das nix.

Chester 26. Jul 2005 16:33

Re: SQL
 
:wall: Genau innerjoin hab ich gebraucht... Mir ist´s nicht mehr eingefallen. thx


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz