SQL Abfrage schreibt in alle Rows den Namen der jeweiligen Column?
Seruvs Leute,
ich habe folgendes Problem (s Bild).
Der Inhalt der Column wird nicht ausgegeben. Stattdessen wird in der Ausgabe die Tabelle einfach mit der jeweiligen Überschrift der Column gefüllt.
Wie kann ich das Problem lösen ?
Das ist die Abfrage (Lieferanten ist der Name der table):
SELECT 'Lieferanten-Nr.', 'Ort', 'Telefon' FROM Lieferanten
Vielen Dank im Voraus !!!!
Liebe Grüße
5 Antworten
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
Die Datenbank macht genau das, was Du ihr aufgetragen hast. Versuche selbst draufzukommen. Das geht nämlich und hilft Dir letztlich weiter.
SELECT Lieferanten-Nr,Ort,Telefon FROM Lieferanten
oder einfach
SELECT * FROM Lieferanten WHERE ...
Die Feldnamen einfach hintereinander durch KOMMA getrennt, ohne Hochkomme (keine einfachaches oder sonst welche)
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.
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
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.
https://www.pic-upload.de/view-36083304/2018-10-0914_55_39-VirtualBox.png.html
Die Spalte heißt Lieferanten-Nr.
So ist es. Man verwendet sogenannte Backticks. Es muss also ein
sein und kein