SQL - Select AS Frage
Ich brauche ein SQL Statement, in dem ich ein und die selbe Tabelle 2 mal einbinde und unterschiedlich verwende
ungefähr so:
SELECT a, b, a AS a2
WHERE a.id = b.id and b.referenz = a2.id
das deshalb, weil meine erste abfrage der a.id zb '2' sein könnte, von b.referenz jedoch eine 6 zurückkommt und ich den sich dadurch ergebenden a2.id wert von 6 ausgeben will auf einer php Seite
(ich hoffe ich habe mich halbwegs verständlich ausgedrückt)
nur: geht das überhaupt und wenn ja: ist AS der richtige befehl? bekomme immer fehlermeldungen!?
ungefähr so:
SELECT a, b, a AS a2
WHERE a.id = b.id and b.referenz = a2.id
das deshalb, weil meine erste abfrage der a.id zb '2' sein könnte, von b.referenz jedoch eine 6 zurückkommt und ich den sich dadurch ergebenden a2.id wert von 6 ausgeben will auf einer php Seite
(ich hoffe ich habe mich halbwegs verständlich ausgedrückt)
nur: geht das überhaupt und wenn ja: ist AS der richtige befehl? bekomme immer fehlermeldungen!?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 173406
Url: https://administrator.de/contentid/173406
Ausgedruckt am: 05.11.2024 um 02:11 Uhr
8 Kommentare
Neuester Kommentar
Moin sadida,
Falls du allein lebst, dann kannst du gerne einen Geschirrspüler beladen mit nur einem Teelöffel abschicken oder die Wohnung mit dem Toaster heizen.
Falls du allerdings in irgendeine WG einziehen möchtest, in der alle gemeinsam die vorhandenen Ressoucen bezahlen und diese Ressourcen auch nur begrenzt aufblasbar sind ....
--> dann nimm dir nur, was du brauchst und nicht alles, was du theoretisch bekommen kannst.
Denk ans letzte Wochenende - irgendwann werden auch die Dreistesten abgestraft.
Grüße
Biber
Zitat von @sadida:
Wie schwerwiegend ist es, wenn ich in einer mysql db mit ca. 500 datensätzen und ca. 20 spalten mit "Select *"
drüberrausche, anstelle tatsächlich nur die felder mit "select a.id, b.id usw..." anzusprechen, die ich
tatsächlich brauche?
schwere performance-schwierigkeiten o.ä.?
Ich sach ma so...Wie schwerwiegend ist es, wenn ich in einer mysql db mit ca. 500 datensätzen und ca. 20 spalten mit "Select *"
drüberrausche, anstelle tatsächlich nur die felder mit "select a.id, b.id usw..." anzusprechen, die ich
tatsächlich brauche?
schwere performance-schwierigkeiten o.ä.?
Falls du allein lebst, dann kannst du gerne einen Geschirrspüler beladen mit nur einem Teelöffel abschicken oder die Wohnung mit dem Toaster heizen.
Falls du allerdings in irgendeine WG einziehen möchtest, in der alle gemeinsam die vorhandenen Ressoucen bezahlen und diese Ressourcen auch nur begrenzt aufblasbar sind ....
--> dann nimm dir nur, was du brauchst und nicht alles, was du theoretisch bekommen kannst.
Denk ans letzte Wochenende - irgendwann werden auch die Dreistesten abgestraft.
Grüße
Biber
Ich glaube die "Blume" von Biber sagt schon alles.
Solange Du in deinen WHERE's und ON's nur die Spalten nutzt für die ein Index angelegt ist, sehe ich kein Problem. Es kommt natürlich auch etwas auf die Arten der Spalten an. In so einem Fall könnte man auch die vielen Spalten zu einer zusammen fassen, so kommen die Daten schneller aus der Datenbank.
Große Datenbanken nutzen für sowas auch etwas andere Technicken - BigTables - schau dir doch mal 'Apache Cassandra' ( http://cassandra.apache.org/ ) dazu an.
Solange Du in deinen WHERE's und ON's nur die Spalten nutzt für die ein Index angelegt ist, sehe ich kein Problem. Es kommt natürlich auch etwas auf die Arten der Spalten an. In so einem Fall könnte man auch die vielen Spalten zu einer zusammen fassen, so kommen die Daten schneller aus der Datenbank.
Große Datenbanken nutzen für sowas auch etwas andere Technicken - BigTables - schau dir doch mal 'Apache Cassandra' ( http://cassandra.apache.org/ ) dazu an.