SQL Abfrage schreibt in alle Rows den Namen der jeweiligen Column?

 - (Computer, Programmierung, Entwicklung)

4 Antworten

Die Spaltennamen angeben, so wie den Tabellennamen -- also ohne Hochkommata

So wie du geschreiben hast, kannst du auch "Select '123456', 'Stuttgart', '832798' From Lieferanten" schreiben und bekommst Stuttgart 832798 123456 in jeder Zeile

Die einfachen Hochkommas stehen eigentlich für einen String, nicht für den Wert, wenn ich mich recht erinnere. Versuchs mal ohne.

So ist es. Man verwendet sogenannte Backticks. Es muss also ein

`

sein und kein

'
SELECT `Lieferanten-Nr.`, `Ort`, `Telefon` FROM `Lieferanten`
2
@TheQ86

MySQL said:

#1054 - Unknown column 'Lieferanten-Nr.' in 'field list'

Es wird ein Error ausgeworfen ;D

0
@cucks

Ja dann überleg halt mal :-P Es steht doch schon klar und deutlich in der Fehlermeldung - zwar auf Englisch, aber deutlich: Unbekannte Spalte 'Lieferanten-Nr.' - kannste jetz was mit anfangen?

1
@TheQ86

Ja schon klar das Problem besteht darin, dass ein String so ausgegeben werden soll und kein Wert.

SELECT "Lieferanten-Nr.", `Ort`, `Telefon` FROM `Lieferanten`

Bei diesem Befehl zeigt er mir jeweils Ort und Telefon aber nicht die Nummer - wenn ich Lieferanten-Nr. schreibe, also ohne jegliche Zeichen funktioniert auch nichts

0
@cucks

Da wird die Spalten-Id bzw. Spalten-Name und die Spalten-Überschrift unterschiedlich sein. Weiß grad nicht, wie man das herausfindet.

Muss irgendwie so gehen:

select column_name from INFORMATION_SCHEMA.COLUMNS where table_name = `Lieferanten`

0
@cucks

Wie heißen denn deine Tabellen und Spalten überhaupt? Und was willst du erreichen?

Vielleicht hilft dir das:

SELECT `lieferanten_nummer` AS 'Lieferanten-Nr.', `ort` AS 'Ort', `telefon` AS 'Telefon'
 FROM `Lieferanten`

Damit würdest du erreichen, dass du die Daten der Spalte mit dem Namen lieferanten_nummer bekommst, im Ergebnis aber die Spalte Lieferanten-Nr. heißt.

Die Namen in den Backticks ( ` ) MÜSSEN die Namen der Tabellenspalten sein. Dahinter kannst du nach dem AS mit Anführungszeichen (einzelne oder Doppelte, geht beides) deinen Anzeigenahem auswählen.

1
@cucks

Nein, die Spalte heißt Lieferanten-Nr (OHNE .)

Probier mal bitte folgendes Query:

SELECT `Lieferanten-Nr` AS 'Lieferanten-Nr.', `ort` AS 'Ort', `telefon` AS 'Telefon'
 FROM `Lieferanten`

1
@TheQ86

Oh man ist das ärgerlich aber gut dass sowas mal passiert ist :D

Vielen Dank - gibt ein Stern sobald möglich

1
@TheQ86

Nein, bitte nicht Backticks nutzen. Das ist kein ANSI-SQL. Ganz schlimm. Nicht nutzen.

0

Spalten fragst du ohne Anführungszeichen ab. Nutze auch keine Backticks ` wie z. T. empfohlen wird. Das ist nämlich kein ANSI-SQL.

Spalten-Namen sollten grundsätzlich aus ASCII Zeichen bestehen. Dann ergeben sich auch keine Probleme.

Ich empfehle Lower und Snake-Case für die Tabellennamen in SQL, also Kleinschreibung und die Trennung der Wörter durch einen Unterstrich.

Also in deinem Fall ort, telefon, lieferanten_nr

Woher ich das weiß:Berufserfahrung

Was möchtest Du wissen?