[SQL] Verschaltete SQL Abfrage via PHP

Dieses Thema im Forum "Webentwicklung" wurde erstellt von PoweRanga, 31. Mai 2011 .

Schlagworte:
  1. 31. Mai 2011
    Verschaltete SQL Abfrage via PHP

    Hey Leute,

    Folgendes Problem:

    Es exisitiert eine MYSQL Datenbank mit den Tabellen

    Artikel
    • ID
    • Artikelnummer

    ArtikelDE

    • Name
    • Frei

    ArtikelFR

    • Name
    • Frei

    ArtikelCH

    • Name
    • Frei

    ArtikelCHFR
    • Name
    • Frei

    Das sind vereinfachte Formen der Tabelle. Macht schon Sinn das sie getrennt vom Artikel sind.

    So nun sollen alle Artikel ausgegeben werden die nicht freigegeben sind, bei denen also Frei != 1 ist. Das sollte wiederum so ausgegeben werden.

    Artikelnummer
    DE - Freigegeben
    FR - Nicht freigegen
    CH - Freigegeben
    CHFR - Nicht freigegen

    Möchte das wenn möglich mit einer Abfrage abhandeln und das ganze klappt solange ich es nur mit der Artikel und z.B. ArtikelDE mache, jedoch habe ich keine Ahnung wie ich das für alle 5 Tabellen hinbekomme!?

    Hier mal die Abfrage die mit 2 Tabellen funktioniert.

    Code:
    SELECT Artikel.Artikelnummer, ArtikelDE.* FROM ArtikelDE RIGHT JOIN Artikel ON Artikel.ID = ArtikelDE.Artikel WHERE ArtikelDE.Frei != '1' ORDER BY Artikel.Artikelnummer ASC
    Wäre cool und ne BW is klar wenn jemand weiterhelfen könnte
     
  2. 1. Juni 2011
    AW: Verschaltete SQL Abfrage via PHP

    Will ja nicht hetzen aber kann mir keiner helfen? Bräuchte das wirklich dringend... Muss fertig werden für die Arbeit und ich hab keinen Schimmer...
     
  3. 1. Juni 2011
    AW: Verschaltete SQL Abfrage via PHP

    (Falls ich Dich richtig verstehe...)

    Du kannst 5 Abfragen für jeweils "eine" Tabelle machen und die Ergebnisse der Abfragen mittels UNION verbinden.

    MySQL :: MySQL 5.1 Referenzhandbuch :: 13.2.7.2 UNION

    Hoffe das hilft.
    MaxDev

    Edit: Etwa so...

    Code:
    SELECT Artikel.Artikelnummer
     , ArtikelDE.* 
    FROM ArtikelDE 
    RIGHT JOIN Artikel ON Artikel.ID = ArtikelDE.Artikel
    WHERE ArtikelDE.Frei != '1' 
    [COLOR="Red"]UNION[/COLOR]
    SELECT Artikel.Artikelnummer
     , ArtikelEN.* 
    FROM ArtikelEN
    RIGHT JOIN Artikel ON Artikel.ID = ArtikelEN.Artikel
    WHERE ArtikelEN.Frei != '1' 
    
     
  4. 1. Juni 2011
    AW: Verschaltete SQL Abfrage via PHP

    Ansich kannst du mehrere Joins in einer abfrage hintereinander machen, das sollte keine probleme geben

    Artikel BMS und SQL/Fortgeschrittene Jointechniken – SELFHTML-Wiki
     
  5. 1. Juni 2011
    AW: Verschaltete SQL Abfrage via PHP

    Normalisierung? Anstatt für jeden Fall eine Tabelle anzulegen, solltest du eine Tabelle anlegen wobei eine Spalte zur Fallunterscheidung dient. Beispiel:

    Code:
    artikel:
     +----+--------+
     | id | nummer |
     +----+--------+
     | 1 | 1 |
     +----+--------+
    
    
    artikel_lokalisierung:
     +------------+------------------+--------------------+------+
     | artikel_id | lokalisierung_id | titel | frei |
     +------------+------------------+--------------------+------+
     | 1 | 1 | Deutschland | 1 |
     | 1 | 2 | Frankreich | 1 |
     | 1 | 3 | Schweiz | 0 |
     | 1 | 4 | Schweiz/Frankreich | 1 |
     +------------+------------------+--------------------+------+
    
    
    lokalisierung:
     +----+------+
     | id | code |
     +----+------+
     | 1 | DE |
     | 2 | FR |
     | 3 | CH |
     | 4 | CHFR |
     +----+------+
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.