tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Yaslaw
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
308
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    moggi moggi ist offline Rookie
    Registriert seit
    Dec 2010
    Beiträge
    6
    Hallo Community,

    ich habe folgende Tabellen:

    pt_ads
    Code :
    1
    2
    
    | *ad_id | sec_id | user_id |
    |  5691  |  225   |   117   |

    pt_picture
    Code :
    1
    2
    
    | *pic_id | ad_id | 
    |   4494  |  5691 |

    Nun möchte ich gerne beide Tabellen miteinander verbinden und zu jedem Artikel die zugehörigen Bilder ausgeben lassen. Irgendwie funktioniert das mit meiner Abfrage nicht und ich kann mir auch nicht erklären wo der Fehler ist. Entweder kann ich mir nur die ad_id ausgeben lassen oder die pic_ad. Beide zusammen aber nicht. Ich brauche unbedingt beide IDs um weiterarbeiten zu können.

    Hier mal meine Abfrage:
    PHP-Code:
    $sql "SELECT ad_id, picture_id, price, subject, company
                FROM pt_ads
                INNER JOIN pt_users
                  ON pt_ads.user_id = pt_users.user_id
                INNER JOIN pt_picture
                  ON pt_ads.ad_id = pt_picture.ad_id
                WHERE FIND_IN_SET('
    $id', catpath) AND price != '0.00'
                ORDER BY RAND() DESC"

    So erhalte ich im Moment keine Ausgabe. Lass ich z.B. die ad_id im SELECT weg werden mir die Daten angezeigt, aber die ad_id = null;

    Weiß jemand wo das Problem ist? Liegt es vielleicht am JOIN?

    Gruß
    Jens
     

  2. #2
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Verschoben in den Datenbankbereich.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  3. #3
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Zuerst mal das ganze formatiert schreiben
    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    SELECT 
        ad_id, 
        picture_id, 
        price, 
        subject, 
        company
    FROM 
        pt_ads
        INNER JOIN pt_users
            ON pt_ads.user_id = pt_users.user_id
        INNER JOIN pt_picture
            ON pt_ads.ad_id = pt_picture.ad_id
    WHERE 
        FIND_IN_SET('{$id}', catpath) 
        AND price != '0.00'
    ORDER BY 
        RAND() DESC
    Und nun sehen wir doch das Problem schon. Im SELECT hast du die ad_id drin. Diese kommt aber in 2 Tabellen vor. Ergo was MySQL nicht, welches der beiden Felder es nehmen soll.
    Ergo solltes du im SELECT-Teil bei der ad_id noch die Tabelle voranschreiben. Das gilt übrigens für alle Felder die nicht eindeutig einer Tabelle zugeordnet werden kann

    Code sql:
    1
    2
    3
    4
    
    SELECT 
        pt_ads.ad_id, 
        picture_id, 
        ...
    moggi bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  4. #4
    moggi moggi ist offline Rookie
    Registriert seit
    Dec 2010
    Beiträge
    6
    Jep, das war es. Wieder was dazu gelernt. Vielen Dank!

    Gruß
    Jens
     

Ähnliche Themen

  1. [MySQL] LEFT JOIN-Fehler
    Von ComFreek im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 08.01.11, 15:22
  2. MS Access: Cross Join / Full Join: Anwendungsbeispiel
    Von semirb im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 13.12.06, 23:43
  3. [ACCESS] Inner Join nach Outer Join umformen ?
    Von AlexD1979 im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 02.05.06, 10:35
  4. JOIN Mysql fehler
    Von PowerCheat im Forum PHP
    Antworten: 5
    Letzter Beitrag: 11.11.04, 21:34
  5. Join oder nicht Join *grübel*
    Von Der Held im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 17.06.02, 09:31

Stichworte