Kann ich bei einer SELECT Abfrage einem Attribut das ich suche will, z.B. Name ein Kürzel zuteilen wie etwa "SELECT Name n FROM ..."?

...komplette Frage anzeigen

3 Antworten

Ja, und zwar genauso, wie du es vorschlägst, oder alternativ "select name as n from..."

Probiere so etwas doch einfach aus ;)

Ja das geht, jedoch soweit ich weiß nur für das Ergebnis.

Also wenn du quasi folgende Abfrage realisieren willst:

"Zeige mir alle Namen die mit A anfangen:

SELECT name n FROM namensliste WHERE (name LIKE "A%")

Die Syntax der Like-Abfrage wird wohl nicht so ganz stimmen, aber ist für meine Erwähnung jetzt auch nicht entscheident.

Im Ergebnis der Abfrage wird der Name nun durch n bezeichnet, aber für die Where-Bedingung muss name eingesetzt werden.

Hello there,

ja das ist möglich, die meisten SQL-Implementierungen, wie etwa MySQL unterstützen das Konzept der Aliase. Das geht sowohl bei Spaltennamen als auch bei Tabellennamen und macht Queries mit JOINS übersichtlicher und erzeugt auch schöner weiterverarbeitbare Ergebnismengen.
Die Aliase werden einfach an den Spalten oder Tabellennamen angehängt, es ist auch möglich noch ein AS einzufügen, um es klarer zu machen. Ich persönlich verwende für Tabellen meist sehr kurze Aliase ohne AS und für Spalten klare Namen mit AS. Ein Beispiel:

SELECT m.Mond_ID AS ID, m.Name AS Bezeichnung, m.Durchmesser as Durchmesser
FROM monde m, planeten p,
(SELECT galaxy, count(*) AS Anzahl, stern_id FROM sterne WHERE Galaxy LIKE "Milchstraße") s
WHERE m.planeten_id = p.planeten_id
AND s.planeten_id = s.stern_id
AND p.planeten_bezeichnung = "Erde"
AND s.stern_bezeichnung = "Solaris";

Hier wurde aus den Tabellen, die teilweise auch durch Zwischenabfragen gebildet wurden, nur noch m, p und s, dadurch ist etwa die Bereinigung des kartesischen Produkts in den ersten WHERE-Zeilen um einiges schlanker geworden und für die Spalten haben wir aussagekräftige Namen.

Du musst aber etwa darauf achten, bei einer Programmiersprache, mit der du die Abfrage ausführst, auch mitzuteilen, welche Werte du haben magst:

$sql = "nicht nochmal, stell dir das obige SQL-Konstrukt vor...";
$ergebnis = mysqli_query($db, $sql);
$spaltennamen = myssqli_fetch_fields($ergebnis);
foreach ($spaltenname AS $spalteninfo)
{
      //Hier wird der Name ausgegeben, den DU gesetzt hast, also das Alias 
      printf("Name:     %s\n", $val->name);
      //Hier werden die Originalnamen verwendet, evtl. inklusive Tabellenpräfixe      printf("Originallname:    %s\n", $val->orgname);
}

Hoffe ich konnte dir helfen.
MfG
Alex

Was möchtest Du wissen?