Martin aus Wien: MySQL 4.0

Tag allerseits!

Eine Anfängerfrage:

Ich habe 3 Tabellen

1. Chefs:

"Chef_ID";"Name"
"0";"Ackermann"
"1";"Piribauer"

2. Personal:

"Personal_ID";"Name";"Abteilung";"Dienstart";"Schicht";"Einsatzort"
0;"Bauer";"Nachforschung";"Außen";"Tag";"Wien"
1;"Kaiser";"Nachforschung";"Außen";"Nacht";"Graz"
2;"Huber";"Verwaltung";"Innen";"Tag";"Wien"
3;"Maier";"Verwaltung";"Innen";"Tag";"Graz"
4;"Müller";"Expedit";"Innen";"Tag";"Wien"

Jeder Chef will jeden Tag einen Bericht haben, wer wo was macht. Ackermann will jeden Tag erfahren, wer in Wien arbeitet und wer im Expedit beschäftigt ist. Piribauer will jeden Tag erfahren, wer in Graz eingesetzt ist und wer Außendienst macht. In der dritten Tabelle steht also, was jeden der beiden Chefs interessiert:

3. Abfragen:

"Chef_ID";"Thema";"Wert"
"0";"Einsatzort";"Wien"
"0";"Abteilung";"Expedit"
"1";"Einsatzort";"Graz"
"1";"Dienstart";"Außen"

Gibt es eine Möglichkeit, mit einer einzigen SQL-Abfrage  eine Liste aller Personal_IDs zu bekommen, die Chef 1 interessieren? (Wie ich mit JOIN die Namen bekomme, ist mir schon klar).

Oder muss ich zuerst abfragen "SELECT Thema, Wert FROM Abfragen WHERE Chef_ID = 1", das Ergebnis in einem Array speichern und dann daraus die nächste Abfrage basteln: "SELECT DISTINCT Personal_ID FROM Personal WHERE Einsatzort = 'Graz' OR Dienstart = 'Außen'"?

Gruß und Dank

Martin aus Wien

  1. yo,

    Gibt es eine Möglichkeit, mit einer einzigen SQL-Abfrage  eine Liste aller Personal_IDs zu bekommen, die Chef 1 interessieren? (Wie ich mit JOIN die Namen bekomme, ist mir schon klar).

    hmm komisch, zwei beiträge für dynamisches sql in kurzer zeit. und ich bin mir nicht sicher, ob die version 4.0 von mysql so was kann. wenn die menge der möglichen themen in der dritten tabelle bekannt sindund sich nicht verändern, gibt es sicherlich eine möglichkeit.

    Ilja

    1. Moin!

      »» Gibt es eine Möglichkeit, mit einer einzigen SQL-Abfrage  eine Liste aller Personal_IDs zu bekommen, die Chef 1 interessieren? (Wie ich mit JOIN die Namen bekomme, ist mir schon klar).

      hmm komisch, zwei beiträge für dynamisches sql in kurzer zeit. und ich bin mir nicht sicher, ob die version 4.0 von mysql so was kann. wenn die menge der möglichen themen in der dritten tabelle bekannt sindund sich nicht verändern, gibt es sicherlich eine möglichkeit.

      Ich könnte mir zwar vorstellen, dass mit irgendeiner Stored Procedure ein DBMS in der Lage ist, aus dem Ergebnis einer Abfrage einen neuen Query zu erstellen, in dem der in der Spalte gespeicherte Name des Suchziels als Spaltenname des eigentlichen Suchquerys genutzt wird - aber MySQL 4.0 kann das nach meinem Kenntnisstand nicht.

      - Sven Rautenberg

      1. Ja danke, dann muss ich nicht weiter nachdenken, dann mach ich's mit PHP in zwei Durchgängen.

        Gruß und Dank

        Martin