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

MySQL Subquery und where is problem

Frage Entwicklung Datenbanken

Mitglied: s7mahess

s7mahess (Level 1) - Jetzt verbinden

06.04.2011 um 16:25 Uhr, 4508 Aufrufe, 4 Kommentare

Guten Tag,

ich habe folgendes Problem:

Wenn ich diese MySQL Syntax benutze kann ich nicht nach "zustand" oder "status" filtern, zB " where zustand = 'in Ordnung'

01.
select 
02.
	geraete_id AS outer_id, 
03.
	hersteller, 
04.
	typ, 
05.
	seriennummer, 
06.
	ipei, 
07.
	(SELECT zustand FROM geraetehistory LEFT JOIN geraetezustand USING (geraetezustand_id) WHERE geraete_id = outer_id ORDER BY geraetezustand_id DESC LIMIT 1) AS zustand, 
08.
	(SELECT status FROM geraetehistory LEFT JOIN geraetestatus USING (geraetestatus_id) WHERE geraete_id = outer_id ORDER BY geraetestatus_id DESC LIMIT 1) AS status, 
09.
	garantiebis 
10.
from 
11.
	geraete 
12.
left join geraetetyp using (geraetetyp_id)
ausgabe soll sein:

id | hersteller | typ | snr | ipei | letzter eigentragener wert bei geraetezustand_id in geraetehistory | letzer eingetragner wert geraetestatus_id in geraetehistory | garantie

meine datenbankstruktur sieht wiefolgt aus:

b01c03a21501edf277647b42c058c259 - Klicke auf das Bild, um es zu vergrößern
Mitglied: thaenhusen
06.04.2011 um 18:10 Uhr
Moin.

Du kannst nicht mit dem Alias filter also

where zustand = 'in Ordnung'

müsste heißen:

where (SELECT zustand FROM geraetehistory LEFT JOIN geraetezustand USING (geraetezustand_id) WHERE geraete_id = outer_id ORDER BY geraetezustand_id DESC LIMIT 1) = "in Ordnung"

(ungetestet)

HTH
MK
Bitte warten ..
Mitglied: Biber
06.04.2011 um 19:42 Uhr
Moin s7mahess,

abgesehen von thaenhusens Kommentar - wenn du diese abfrage gegen das oben abgebildete Datenmodell abfeuerst...
Was ist denn deine Erwartungshaltung?

Eine "geraete_id" wird doch ein-, zwei- oder achtmal gefunden in der Tabelle "geraete_history"
Und nur von da kommst du doch auf den "Zustand" und den "Status".

Wenn schon, dann darfst du doch aus der "geraete_history" nur die neuesten Datensätze, nur den Stand "heute" abziehen.

Oder welche Fragestellung willst du mit diesem Statement beantworten?

Grüße
Biber
Bitte warten ..
Mitglied: s7mahess
07.04.2011 um 09:07 Uhr
Ok,

das obere statment soll mir eine Liste mit allen Geräten ausgeben in dieser Form:

id ||| hersteller ||| typ ||| snr ||| ipei ||| letzter eigentragener wert bei geraetezustand_id in geraetehistory ||| letzer eingetragner wert geraetestatus_id in geraetehistory ||| garantie

in spalte "zustand" soll der aktuellste (letzte zustand) des geräts stehen. das wäre aus der tabelle "geraetehistory" der mit der höchsten "geraetehistory_id" where "geraete_id" = ..........................



Da kam der Gedankenblitz:

01.
select 
02.
	geraete_id, 
03.
	hersteller, 
04.
	typ, 
05.
	seriennummer, 
06.
	ipei, 
07.
	(SELECT zustand FROM geraetehistory LEFT JOIN geraetezustand USING (geraetezustand_id) WHERE geraetehistory.geraete_id = geraete.geraete_id ORDER BY geraetezustand_id DESC LIMIT 1) AS zustand, 
08.
	(SELECT status FROM geraetehistory LEFT JOIN geraetestatus USING (geraetestatus_id) WHERE geraetehistory.geraete_id = geraete.geraete_id ORDER BY geraetestatus_id DESC LIMIT 1) AS status, 
09.
	garantiebis 
10.
from 
11.
	geraete 
12.
left join geraetetyp using (geraetetyp_id) 
13.
WHERE 
14.
	(SELECT zustand FROM geraetehistory LEFT JOIN geraetezustand USING (geraetezustand_id) WHERE geraetehistory.geraete_id = geraete.geraete_id ORDER BY geraetezustand_id DESC LIMIT 1) LIKE 'in%'
Bitte warten ..
Mitglied: Biber
07.04.2011 um 10:56 Uhr
[OT]
@s7mahess
Hört sich echt performant an, das Statement.....

Grüße
Biber
[/OT]
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SQL - Abfragen - Mehrere Tabellen - Problem WHERE-Filter
gelöst Frage von Andy1987Datenbanken12 Kommentare

Guten Morgen, ich muss mich derzeit mit SQL-Abfragen rumschlagen, um unsere Inventarisierung etwas Übersichtlicher zu gestallten. Mein Problem ist ...

PHP
Problem mit php und mysql
Frage von gamerffPHP6 Kommentare

Hallo Forum ich hab ein Problem beim Update eines Datensatzes Kann mir jemand sagen wo mein Fehler liegt

Datenbanken
MSSQL: Where durch Variable ändern
gelöst Frage von PCFJKGDatenbanken11 Kommentare

Ich versuche in Abhängigkeit von einer Variablen eine Abfragebedingung zu ändern: SELECT COUNT(*) FROM SQL-Tabelle WHERE IIF (@Variable IS ...

Batch & Shell
PowerShell Where-Object multiple Conditions
gelöst Frage von derhoeppiBatch & Shell2 Kommentare

Hallo, ich habe ein Array das mit Where-Object gefiltert wird. Beim Aufbau des Filters stehe ich jedoch vor einem ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 12 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 12 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 20 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...