You are not logged in.

BLUESCREEN

Junior Schreiberling

  • "BLUESCREEN" is male
  • "BLUESCREEN" started this thread

Posts: 244

Date of registration: Oct 11th 2005

1

Monday, April 23rd 2007, 10:03pm

SQL: ungültiger Bezeichner

Weiß jemand, warum folgender Query zu einer Fehlermeldung führt?
Ich vermute mal, dass man SQL-92 und SQL:1999-Syntax nicht gleichzeitig verwenden kann, da es geht, sobald man das "PARENTS" b rausnimmt ...

Source code

1
2
3
4
5
6
SELECT 1
FROM "PERSON" a,"PARENTS" b
JOIN "PERSON" c ON a."PERSON"=c."PERSON"

FEHLER in Zeile 3:
ORA-00904: "A"."PERSON": ungültiger Bezeichner

Ist nur ein Minimalbeispiel, also nicht nach dem Sinn fragen.

fatdolphin

Trainee

  • "fatdolphin" is male

Posts: 71

Date of registration: May 30th 2005

2

Monday, April 23rd 2007, 10:08pm

es fehlt noch ein "JOIN" zwischen a und b!

Falls b kein Join partner ist,kannst du join beziehung in where klausel ausdrücken,wie "from a,b,c where a.person=c.person"

BLUESCREEN

Junior Schreiberling

  • "BLUESCREEN" is male
  • "BLUESCREEN" started this thread

Posts: 244

Date of registration: Oct 11th 2005

3

Monday, April 23rd 2007, 10:16pm

Quoted

Original von fatdolphin
es fehlt noch ein "JOIN" zwischen a und b!

Ne, ich wollte keine JOIN-Bedingung, sondern das komplette kartesische Produkt.

Deshalb bin ich überhaupt erst auf den Query gekommen, weil folgendes nicht ging:

Source code

1
2
3
SELECT 1
FROM "PERSON" a
JOIN "PARENTS" b

Dafür suche ich einen ordentlichen Ersatz.

fatdolphin

Trainee

  • "fatdolphin" is male

Posts: 71

Date of registration: May 30th 2005

4

Monday, April 23rd 2007, 10:32pm

na dann,"select * from a,b,c" liefert das kartesische Produkt aus a,b,c aus

BLUESCREEN

Junior Schreiberling

  • "BLUESCREEN" is male
  • "BLUESCREEN" started this thread

Posts: 244

Date of registration: Oct 11th 2005

5

Monday, April 23rd 2007, 10:46pm

Es soll ja gleichzeitig noch einen JOIN mit Bedingung geben - und zwar nach SQL:1999 :D

Sinan

Senior Schreiberling

  • "Sinan" is male

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

6

Tuesday, April 24th 2007, 11:08am

RE: SQL: ungültiger Bezeichner

ORA-00904: invalid column name --> Ungültiger Bezeichner.

Warum schreibst du eigentlich die Tabellennamen in Anführungszeichen?
Wie wäre es mit

Source code

1
2
SELECT spalte1
FROM Tabelle1 a, Tabelle2 b JOIN Tabelle3 c ON b.Spaltenname = c.Spaltenname
With great power comes great responsibility

This post has been edited 1 times, last edit by "Sinan" (Apr 24th 2007, 12:11pm)


BLUESCREEN

Junior Schreiberling

  • "BLUESCREEN" is male
  • "BLUESCREEN" started this thread

Posts: 244

Date of registration: Oct 11th 2005

7

Tuesday, April 24th 2007, 1:01pm

RE: SQL: ungültiger Bezeichner

Quoted

Original von Sinan
Wie wäre es mit

(...)

Das ist doch genau so wie in meinem ersten Post.

Quoted

Original von Sinan
Warum schreibst du eigentlich die Tabellennamen in Anführungszeichen?

Dadurch kann man auch reservierte Wörter verwenden.

julianr

Erfahrener Schreiberling

Posts: 298

Date of registration: Oct 13th 2005

Location: I live in a giant bucket.

8

Tuesday, April 24th 2007, 1:20pm

Was für Schlüsse darf man eigentlich aus deiner Signatur ziehen...? o____O

Sinan

Senior Schreiberling

  • "Sinan" is male

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

9

Tuesday, April 24th 2007, 1:21pm

RE: SQL: ungültiger Bezeichner

Quoted

Original von BLUESCREEN
Das ist doch genau so wie in meinem ersten Post.

In deinem ersten Posten versuchst du b und c zu joinen indem du eine Spalte aus a verwendest? oder ist das ein Tippfehler?

Quoted

Original von BLUESCREEN
Dadurch kann man auch reservierte Wörter verwenden.

Tabellen mit reservierten Wörtern benennen ?(
With great power comes great responsibility

BLUESCREEN

Junior Schreiberling

  • "BLUESCREEN" is male
  • "BLUESCREEN" started this thread

Posts: 244

Date of registration: Oct 11th 2005

10

Tuesday, April 24th 2007, 6:15pm

RE: SQL: ungültiger Bezeichner

Quoted

Original von julianr
Was für Schlüsse darf man eigentlich aus deiner Signatur ziehen...? o____O

Wieso Schlüsse? Das ist eine Feststellung :D

Quoted

Original von Sinan

Quoted

Original von BLUESCREEN
Das ist doch genau so wie in meinem ersten Post.

In deinem ersten Posten versuchst du b und c zu joinen indem du eine Spalte aus a verwendest?

Das mit dem JOIN funktioniert im Prinzip so, dass das gesamte bisherige Ergebnis einer Abfrage mit weiteren Daten verknüpft wird (und nicht etwa die Tabelle, die vor JOIN steht, mit der, die dahinter steht). In meinem Beispiel sollte das bisherige Ergebnis aus dem Inhalt der Tabellen a und b bestehen.

Quoted

Original von Sinan

Quoted

Original von BLUESCREEN
Dadurch kann man auch reservierte Wörter verwenden.

Tabellen mit reservierten Wörtern benennen ?(

Oder Spalten: Z. B. ist "date" reserviert und das braucht man ja schon öfter.

Sinan

Senior Schreiberling

  • "Sinan" is male

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

11

Thursday, April 26th 2007, 2:21pm

RE: SQL: ungültiger Bezeichner

Quoted

Original von BLUESCREEN
Oder Spalten: Z. B. ist "date" reserviert und das braucht man ja schon öfter.

ok, zu empfehlen ist jedoch die Spalte mit in_date, out_date oder register_date etc. zu bennen, dann ist der Name auch aussagekräftiger. Und in vielen Fällen braucht man in einer Tabelle ja eh mehr als eine Date-Spalte.
With great power comes great responsibility

fatdolphin

Trainee

  • "fatdolphin" is male

Posts: 71

Date of registration: May 30th 2005

12

Thursday, April 26th 2007, 4:55pm

RE: SQL: ungültiger Bezeichner

Quoted

Original von BLUESCREEN
Das mit dem JOIN funktioniert im Prinzip so, dass das gesamte bisherige Ergebnis einer Abfrage mit weiteren Daten verknüpft wird (und nicht etwa die Tabelle, die vor JOIN steht, mit der, die dahinter steht). In meinem Beispiel sollte das bisherige Ergebnis aus dem Inhalt der Tabellen a und b bestehen.

versuchst du mit cross join,eine anfrage wäre: select * from a join b on a.xxx=b.xxx cross join c, dann wird das kartesische Produkt aus dem Ergebnis von a join b und anschließend mit c gebildet.

BLUESCREEN

Junior Schreiberling

  • "BLUESCREEN" is male
  • "BLUESCREEN" started this thread

Posts: 244

Date of registration: Oct 11th 2005

13

Thursday, April 26th 2007, 6:47pm

RE: SQL: ungültiger Bezeichner

Quoted

Original von fatdolphin
cross join

Argh, natürlich! Und das steht sogar auf den Folien der SQL-Vorlesung -.-
Ich bin wohl durch MySQL vorgeschädigt - da kann man einfach nur JOIN schreiben ...