php-resource.de

MySQL Tutorial: MySQL für Anfänger einfach erklärt

Dieses Tutorial richtet sich an Anfänger, die noch nie mit SQL gearbeitet haben. Vielleicht ist aber auch für Fortgeschrittene das Eine oder Andere dabei.

|30.09.2008 | Berni | 71998 | KAT : MySQL | | Kommentare 2


16

18

Sub SELECT

Es gibt noch eine weitere Möglichkeit die Monatsauswertung zu erstellen, man kann sog. Subselects verwenden. Damit ist gemeint, dass an einer Stelle innerhalb eines SQLs ein SELECT auftaucht. Wir bauen den SQL wieder Schritt für Schritt auf. Zuerst selektieren wir alle Daten vom Artikelstamm.

Das Hauptquery: die Artikel selektieren:

SELECT
    art.artikelnummer,
    art.bezeichnung
FROM artikel art

Dann erstellen wir einen SQL für die nächste Spalte, die Werte für Januar. Das Subquery muss für einen Artikel genau ein Feld (einee Spalte und eine Zeile) erzeugen. Zum Aufbauen und Testen nehmen wir den Artikel mit der Nummer1:

SQL: Der Subselect für Januar:
SELECT
    SUM(ums1.verkaufspreis)
FROM umsatz ums1
WHERE MONTH(ums1.datum)=1 AND ums1.artikelnummer=1

Jetzt wird das Subquery in das Hauptquery eingebaut.
Es muss in Klammern geschrieben werden. Die Artikelnummer des Subquerys entspricht der Artikelnummer des Hauptquerys:

SELECT
    art.artikelnummer,
    art.bezeichnung,
    (SELECT SUM(ums1.verkaufspreis)
        FROM umsatz ums1
        WHERE MONTH(ums1.datum)=1 AND ums1.artikelnummer=art.artikelnummer )
FROM artikel art

Der Subselect wird jetzt für jedes Feld ausgeführt. Jetzt fehlt nur noch der Februar und eine vernünftige Spaltenüberschrift:

SELECT
    art.artikelnummer,
    art.bezeichnung,
    (SELECT SUM(ums1.verkaufspreis)
        FROM umsatz ums1
        WHERE MONTH(ums1.datum)=1 AND ums1.artikelnummer=art.artikelnummer ) as Jan,
    (SELECT SUM(ums2.verkaufspreis)
        FROM umsatz ums2
        WHERE MONTH(ums2.datum)=2 AND ums2.artikelnummer=art.artikelnummer ) as Feb
FROM artikel art

Warnung:
Subselects sind langsam, der Server muss für jedes Feld eine ganze SQL-Abfrage ausführen. Wir merken hier noch nichts davon. In unserem Fall wurden für 4 Zeilen und 2 Spalten 8 Abfragen ausgeführt. Eine Umsatztabelle kann in der Realität jedoch richtig gross werden. Bei 100 Artikeln und 12 Monaten entstehen intern 1200 Unterabfragen. Bei nur 1000 Datensätzen in der Umsatztabelle müssen schon 1.2 Millionen Datensätze verarbeitet werden. Subselects sollte man daher nur verwenden, wenn es wirklich keine andere Möglichkeit mehr gibt und wenn man sich sicher ist, dass die Performance mit "echten" Daten noch annehmbar ist.

Navigation -> Seitenanzahl : (18)

 « Anfang ...  «  7 8 9 10 11 12 13 14 15 16 17 18  » 
Kommentare zum Tutorial
Tutorial kommentieren
 
24.06.2012 10:50:44 Hi, als Anfänger in mysql hat mich dieses Tutorial begeistert und stellenweise schon überf ...
21.01.2010 20:47:24 Ein echt sehr schönes MySQL Tutorials, nur leider fehlen da tiefes eingehen über die Unter ...

Alle Kommentare anzeigen ...
 
Über den Autor
Berni

Berni

Status
Premium Mitglied

Beruf
Selbstständig

Mitglied seit:
22.01.2001

letzte Aktivität
22.10.2018

 

Tutorial bewerten

Hat Ihnen dieses Tutorial gefallen? Dann bewerten Sie es jetzt! Fünf Sterne bedeutet "Sehr gut", ein Stern "Unzureichend".



 

aktuelle Artikel

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Neu | Berni

Wissensbestand in Unternehmen

Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Neu | Berni