Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst SQL - Select AS Frage

Mitglied: sadida

sadida (Level 1) - Jetzt verbinden

20.09.2011 um 15:53 Uhr, 3244 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:
01.
SELECT * FROM a, b, a AS a2 
02.
WHERE a.id = b.id and b.referenz = a2.id
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
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:
01.
SELECT 
02.
  a.*, 
03.
  b.*, 
04.
  a2.*, 
05.
  a2.`id` AS 'a2_id' 
06.
FROM `meinetabelle` a, `meinetablle2` b, `meinetabelle3` a2 
07.
WHERE 
08.
  a.`id` = b.`id` 
09.
  and b.`referenz` = a2.`id`
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 ..
Ähnliche Inhalte
Datenbanken
IF Abfrage im SELECT Oracle SQL
gelöst Frage von 94451Datenbanken2 Kommentare

Hallo , ist es möglich im SELECT eine IF-Abfrage machen (bin auch offen für eine andere Lösung). >SELECT ID, ...

Datenbanken

SQL Abfrage (Multiple Rows in singleton select)

Frage von Triforce500Datenbanken2 Kommentare

Hallo, ich habe zwei Tabellen (1:N), heißt: auf einen Datensatz in Tabelle A werden zwei Datensätze in Tabelle B ...

Datenbanken

Select column by id ORALCE SQL

gelöst Frage von 94451Datenbanken2 Kommentare

Hallo Liebe Leut, gibt es die Möglichkeit eine Column anhand einer ID zu selekiteren? wenn ich einen Abruf mache ...

Datenbanken

Mit sql eine Zeile einfügen, select und feste Werte

Frage von helmuthelmut2000Datenbanken9 Kommentare

Hallo, Ich möchte folgendes machen: Ich möchte an einer SQL DB in einer Tabelle Zeilen hinzu machen. Ich möchte ...

Neue Wissensbeiträge
Windows Server

SBS 2011: Installation von KB4457144 schlägt beim Reboot fehl - Von Dienst gesperrte Schriftart ursächlich

Tipp von the-buccaneer vor 9 StundenWindows Server1 Kommentar

Moinsen zusammen! Das hat mich einige graue Haare gekostet: Ein SBS 2011 weigerte sich schon im August, das monatl. ...

Windows Netzwerk
Browser-Lags und IPv6
Erfahrungsbericht von NixVerstehen vor 15 StundenWindows Netzwerk1 Kommentar

Hallo zusammen, wir betreiben als kleines Speditionsunternehmen ein überschaubares Windows-Netzwerk mit Win10-Clients sowie einem Server 2016 Essentials als "eierlegende ...

Humor (lol)

Erstaunlich, Windows mit extremer Laufzeit (Server) lol

Tipp von mathu vor 18 StundenHumor (lol)5 Kommentare

Was es so alles gibt. :-)

Windows Netzwerk

CGM Praxisarchiv funktioniert auf Clients nach Update auf 4.14 nicht mehr

Tipp von MOS6581 vor 1 TagWindows Netzwerk

Moin, ein Kunde setzt das CGM-Praxisarchiv ein. Mehrplatzinstallation mit SQL-Server. Nachdem letzte Woche auf die 4.14 aktualisiert wurde, funktionierte ...

Heiß diskutierte Inhalte
Hyper-V
Windows Serer 2016 Standard virtualisieren
gelöst Frage von fritte87Hyper-V33 Kommentare

Hallo zusammen, ich muss für eine kleine Firma ein entsprechendes neues kleines Konzept bauen. Ich habe einen Server Standard ...

LAN, WAN, Wireless
Kombiniere mehrere 4G Router zu einem Netzwerk - Anwendung kleine LAN (10-20 Leute)
Frage von HulkTheHeroLAN, WAN, Wireless24 Kommentare

Guten Mittag liebes Administrator - Fourm, ich hoffe ich habe das richtige Thema ausgewählt - ansonsten bitte gerne verschieben ...

Windows Server
Fileserver von 2012 R2 auf 2012R2
gelöst Frage von ThabeusWindows Server23 Kommentare

Moin moin, leider war in der Vergangenheit der Fokus des Betriebs nicht auf Langfristigkeit ausgelegt. Daher stehe ich jetzt ...

Router & Routing
Größere Zahl VPN-Verbindungen mit Fritz-Box einrichten
Frage von miscmikeRouter & Routing15 Kommentare

Hallo Zusammen, ich supporte verschiedene Kunden mit bestehenden LAN-LAN-Kopplungen via FritzBox (7490, FritzOS 7.01) . Anwendungen sind z.B. Kaspersky-KSC ...