SQL - Select AS Frage

Mitglied: sadida

sadida (Level 1) - Jetzt verbinden

20.09.2011 um 15:53 Uhr, 3445 Aufrufe, 8 Kommentare

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!?
Mitglied: Logan000
20.09.2011 um 16:02 Uhr
Moin Moin

bekomme immer fehlermeldungen!?
Wundert mich nicht.
"Select" ohne "From".
Auf was für einer Datenbank geht denn sowas?

Versuchs mal so:
Gruß L.
Bitte warten ..
Mitglied: vorstieg
20.09.2011 um 16:25 Uhr
SELECT employee.id, employee.name, employee.blabla, ... department.id, department.name, ..., (SELECT irgendwas from employee where employee.id= department.referenzid )as employee_verweis_irgendwas
FROM employee INNER JOIN department
ON employee.id = department.id;
Bitte warten ..
Mitglied: sadida
20.09.2011 um 16:32 Uhr
jaja is mir schon klar das ein from auch noch dazugehört :) face-smile
hab ja nicht das gesamte statement reinkopiert da sich der rest von selbst erklärt...

jetzt funktioniert das statement - wenn ich jetzt aber mit php das feld a2.id statt a.id ausgeben will - wie mach ich das? muss ich wirklich jedes einzelne feld mit AS übersetzen? sprich:

a.id AS a2.id, a.artnr AS a2.artnr usw... usf...
damit ich es ansprechen kann?

oder gehts direkt im php-code auch? das funktioniert jedenfalls nicht: <?php echo $row_test['a2.artnr']; ?>
Bitte warten ..
Mitglied: nxclass
20.09.2011 um 16:38 Uhr
Du versuchst einen Tabellen Alias als Bezeichner zu verwenden.

versuche es mal so:
Bitte warten ..
Mitglied: sadida
20.09.2011 um 17:03 Uhr
ja PERFEKT nun ists genau so wie ich es wollte - vielen Dank!

abschliessend noch eine kleine Frage:

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.ä.?
Bitte warten ..
Mitglied: Biber
20.09.2011 um 17:41 Uhr
Moin sadida,

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...
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
Bitte warten ..
Mitglied: nxclass
20.09.2011 um 21:01 Uhr
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.
Bitte warten ..
Mitglied: sadida
21.09.2011 um 15:48 Uhr
Vielen Dank für die unzähligen Infos.
Statement funktioniert nun und ich SELECTe jetzt auch nur noch die daten, die ich auch tatsächlich benötige

Vielen Dank nochmal!
Bitte warten ..
Heiß diskutierte Inhalte
Zusammenarbeit
Klimaschutz
NebellichtVor 22 StundenTippZusammenarbeit49 Kommentare

Hallo friends, (friends in Anlehnung an die vielen Fs in dem englischen von FFF: fridays for future. Übrigens am 19.03.2021 gibts wieder einen globalen ...

Notebook & Zubehör
Tipp für festgefressene Scharniere bei Lenovo V120 Notebook?
gelöst LochkartenstanzerVor 1 TagFrageNotebook & Zubehör20 Kommentare

Moin Kollegen, Ich habe hier ein Lenovo V120 mit einem laut Internet üblichen Problem von "festgefressenen" Scharnieren. Ich könnte jetzt aufwendig das Notebook zerlegen ...

Microsoft Office
Microsoft365 und Outlook verbinden
ratzekahl1Vor 1 TagFrageMicrosoft Office31 Kommentare

Guten Morgen zusammen, ich habe einige Probleme / Fragen. Ich habe Office 365 auf den ersten Rechnern installiert. Admin angelegt, Benutzer usw. Da ich ...

Microsoft Office
Wechsel von Office - Exchange on premise zu Office 365 - Exchange Online
jann0rVor 1 TagAllgemeinMicrosoft Office14 Kommentare

Moin, ich weiß nicht so richtig, unter welche Überschrift man dieses Thema hier am besten packen kann, daher mal als allg. Beitrag / Erfahrungsbericht. ...

Viren und Trojaner
Ryuk Ransomware Warnzeichen
SchlemihlVor 1 TagFrageViren und Trojaner8 Kommentare

Guten Abend, nachdem ich hier und hier erfahren habe, wie sich die Ransomware Ryuk verhält, musste ich feststellen, dass unser kleines Netzwerk für eine ...

Internet
Sichere Verbindung von zu Hause zu einem Firmenpc
haiflosseVor 1 TagFrageInternet6 Kommentare

Hallo! Ich suche eine Lösung mit der ich eine sichere Verbindung (ohne das ein Virus, Trojaner oder Ransom Virus den Computer bzw. Netzwerk zerstört) ...

Windows 10
Leeres Desktop bei neuen Usern - möglich?
gelöst istike2Vor 1 TagFrageWindows 104 Kommentare

Hallo, in dem aktuellen Windows 10 Image haben wir leider vergessen das Desktop zu bereinigen. Wir haben also bei jedem neuen User einen vollen ...

TK-Netze & Geräte
2 x VPN site-to-site möglich?!
RicoPausBVor 1 TagFrageTK-Netze & Geräte6 Kommentare

Moin aktuell haben wir hier ein site-to-site vpn via IPsec. Das ganze läuft stabil aber langsam mit 2 x AVM6490 an Vodafone-Anschlüssen. Nun gibt ...