komplexe JOIN-Abrage (4 Tabellen)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • komplexe JOIN-Abrage (4 Tabellen)

    Meine JOIN Abfrage mit 2 Tabellen funktioniert super,
    nun habe ich das Problem, dass die Tabelle 'categories'
    irgendwie nicht beachtet wird. Die Verknüpfungen sind
    so weit stimmig. SQL Fehler werden nicht gemeldet,
    lediglich die Ausgabe des von categories (type und title)
    sind leer, ansonsten wird alles angezeigt.
    Ich bin dankbar für jede erdenkliche Hilfe.

    PHP-Code:
    $sql_ads mysql_query("

    SELECT *,t1.id AS id,t1.origin_id AS origin_id,t1.origin AS origin,
    t2.type AS type,t2.title AS title

    FROM ads t1

    //diese Tabelle scheint nicht angesprochen zu werden
    INNER JOIN categories t2 ON t1.cid = t2.cid AND t1.p_cid = t2.p_cid

    RIGHT JOIN customers_private t3 ON t1.origin_id = t3.id
    AND t1.origin = 'customers_private'

    LEFT JOIN customers_business t4 ON t1.origin_id = t4.id
    AND t1.origin = 'customers_business'

    WHERE t1.status = '1' AND t3.postcode BETWEEN 01000 AND 09999
    AND t4.postcode BETWEEN 01000 AND 09999
    ORDER BY t1.id DESC LIMIT 
    $begin,$count

    "
    ) or die (mysql_error()); 
    Zuletzt geändert von kerbstone; 04.12.2006, 12:20.

  • #2
    bist du dir sicher zu wissen das die Unterschiede zwischen INNER LEFT und RIGHT JOINS sind?
    Code:
    RIGHT JOIN customers_private t3 ON t1.origin_id = t3.id
    AND t1.origin = 'customers_private'
    LEFT JOIN customers_business t4 ON t1.origin_id = t4.id
    AND t1.origin = 'customers_business'
    Das sollten meiner meinung nach beides LEFT joins sein.


    Haste mal geguckt was "SELECT *" fürn Ergebniss liefert ?

    Kommentar


    • #3
      bist du dir sicher zu wissen das die Unterschiede zwischen INNER LEFT und RIGHT JOINS sind?
      - nein.

      Haste mal geguckt was "SELECT *" fürn Ergebniss liefert ?
      - nein, auch das nicht, das werde ich jetzt mal prüfen.
      ich danke dir schonmal für die tipps

      Kommentar


      • #4
        durch den RIGHT und danach folgenden LEFT JOIN hast du die Tabelle customers_private zur Zentraltabelle gemacht, daher sollst du dich nicht wundern, wenn mal in t2.type und t2.title null steht.

        Kommentar


        • #5
          Vielen Dank, es funktioniert jetzt mit den LEFT JOINS.
          Das war wirklich ein grober Fehler von mir.

          Kommentar

          Lädt...
          X