Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MySql Frage: Problem mit einer etwas lomplexeren Abfrage

Einklappen

Neue Werbung 2019

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

  • [Erledigt] MySql Frage: Problem mit einer etwas lomplexeren Abfrage

    Hallo Community,

    ich hab hier eine etwas komplexere Abfrage um mir mehrere Abfrage zu sparen.

    Ich möchte also in einem Zug, den username, user id, die anzahl privater nachricht und ob der empfänger den Sender ignoriert.

    Kurz um gesagt, ich will damit checken, ob der Empfänger Nachrichten empfangen will und ob er das darf (anzahl an Nachrichten und / oder ob der Sender vom Empfänger ignoriert wird)

    Dazu habe ich mir folgende Abfrage ausgedacht:
    Code:
    SELECT
      u.user_id,
      u.user_name,
      g.group_maxpm,
      COUNT( r.pm_id ) AS pm_count,
      f.ignored
    FROM
      table_user u,
      table_user_group g
    LEFT JOIN
      table_pm_recipients r 
      ON ( 
        r.user_id = u.user_id 
        AND r.pm_folderid = 0
      )
    LEFT JOIN
      table_friend f
      ON( 
        f.user_id = u.user_id 
        AND f.to_user_id = 2 
      )
    WHERE
      u.group_id = g.group_id
    AND
      u.user_id IN (1)
    GROUP BY
      u.user_id
    Dazu meldet mir allerdings PHP-Myadmin:
    #1054 - Unknown column 'u.user_id' in 'on clause'
    Mache ich jetzt statt dem u.user_id ein user_id, dann funktioniert es, jedoch nur wenn ich die Friend-abfrage auch weglasse, da ja auch u.user_id da steht.

    Nehme ich jetzt aus beiden Joins das u.user_id raus und mache user_id draus, so bekomme ich folgenden fehler:
    #1052 - Column 'user_id' in on clause is ambiguous

    Ich hoffe ihr könnt mir dabei helfen und danke im Vorraus
    [B]Mfg Tomtaz[/B]
    [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

  • #2
    Weiß da keiner was daran falsch ist, oder will mit PHP-MyAdmin nur verarschen. Ich meine, so rein theoretisch ist die Abfrage doch korrekt oder nicht?
    [B]Mfg Tomtaz[/B]
    [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

    Kommentar


    • #3
      oder will mit PHP-MyAdmin nur verarschen
      Das wirds sein. Bitte nicht drängeln...
      [COLOR="#F5F5FF"]--[/COLOR]
      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
      [COLOR="#F5F5FF"]
      --[/COLOR]

      Kommentar


      • #4
        Hm wieso baust du eigentlich deine MySQL Abfrage so so auf?
        Ich pers. würde einfach die Abfrage table_user_group auch in ein "LEFT JOIN" machen. Falls du doppelte Bezeichnungen hast hilft ja auch "as".

        Gruß s1x

        Kommentar


        • #5
          Zitat von s1x Beitrag anzeigen
          Hm wieso baust du eigentlich deine MySQL Abfrage so so auf?
          Ich pers. würde einfach die Abfrage table_user_group auch in ein "LEFT JOIN" machen. Falls du doppelte Bezeichnungen hast hilft ja auch "as".

          Gruß s1x
          Hi, also diese Abfrage hat dann funktioniert, also so:
          Code:
          SELECT
            u.user_id,
            u.user_name,
            g.group_maxpm,
            COUNT( r.pm_id ) AS pm_count,
            f.ignored
          FROM
            table_user u
          LEFT JOIN
            table_user_group g
            USING (group_id)
          LEFT JOIN
            table_pm_recipients r 
            ON ( 
              r.user_id = u.user_id 
              AND r.pm_folderid = 0
            )
          LEFT JOIN
            table_friend f
            ON( 
              f.user_id = u.user_id 
              AND f.to_user_id = 2 
            )
          WHERE
            u.group_id = g.group_id
          AND
            u.user_id IN (1)
          GROUP BY
            u.user_id
          Ich danke dir. Aber warum geht es so, aber nicht anders, kann ich mir einfach nicht erklären...
          [B]Mfg Tomtaz[/B]
          [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

          Kommentar


          • #6
            Weil die Syntax von Selects und Joins das halt nicht zulässt

            Kommentar

            Lädt...
            X