ID aus einer Abfrage in einer anderen Tabelle?

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

  • ID aus einer Abfrage in einer anderen Tabelle?

    Hallo,

    ich hätte da mal ne Frage..
    Folgende Tabellen:

    Tabelle1: BildID | Bild
    Tabelle2: BildID | UserID

    Ein User kann sich nun seine Lieblingsbilder speichern...
    Ich möchte die Bilder, die er gespeichert hat, mit einer anderen HG-Farbe ausgeben, als die anderen (wenn ich die übersicht ausgebe)..

    Theoretisch sowas:

    PHP-Code:
    $qry mysql_query("SELECT * From Tabelle1");
    while(
    $result mysql_fetch_object($qry)){
    $sql mysql_query("SELECT * From Tabelle2 WHERE BildID = ".$result->BildID." usw..");
    if(
    mysql_num_rows($sql) == 1$otherhgcolor
    Kann man das ganze auch in eine Abfrage fassen?

    Man könnte zwar noch alle Lieblingsbilder auslesen, in ein Array speichern und dann mittels array_exists oder so gucken, ob es drin ist, aber sind dann tortzdem noch 2 Abfragen (zumindest günstiger als das Beispiel oben)

    mfg

  • #2
    Diesen Thread hast du nicht wirklich übersehen, oder???

    Kommentar


    • #3
      Natürlich nicht, allerdings hatte ich kein Einfall, inwiefern ich da einen Join anwenden kann..

      Hab nun aber ne Idee und werd mal gucken, ob die funktioniert..
      Ist zwar etwas umständlich und wohl zweckentfremdend, aber naja..

      mfg

      Kommentar


      • #4
        das ist ein popeliger left join in seiner (fast) einfachsten Form. Poste einfach wenns klappt, oder wenns nen konkretes Problem gibt.

        Kommentar


        • #5
          PHP-Code:
          $sql "Select tabelle1.BildID, Bild, UserID 
                       From tabelle1 
                       LEFT JOIN tabelle2 ON tabelle1.BildID = tabelle2.BildID"

          Würd ich nun stark annehmen.. Dann brauch ich in der if-Abfrage nur zu gucken, ob UserID vorhanden ist.

          Richtig?

          mfg

          Kommentar


          • #6
            Das wäre der Join in seiner einfachsten Form.

            Vermutlich musst du noch das ganze auf einen bestimmten User eingrenzen, oder?

            PHP-Code:
            ON tabelle1.BildID tabelle2.BildID 
            wird zu
            PHP-Code:
            USING(BildID

            Kommentar


            • #7
              Vermutlich musst du noch das ganze auf einen bestimmten User eingrenzen, oder?
              Das meinte ich oben mit "usw." und hätte ich nun fast vergessen

              PHP-Code:
              $sql "Select tabelle1.BildID, Bild, UserID 
                           From tabelle1 
                           LEFT JOIN tabelle2 Using(BildID) WHERE UserID = "
              .$userID.")"
              Denk ich mir zumindest so..
              Obs funktioniert, seh ich dann heut Nachmittag ^^..

              mfg

              Kommentar


              • #8
                Ein paar kleinere Fehler musst du noch beheben, siehst du dann heute Nachmittag.

                Kommentar


                • #9
                  Laut phpmyadmin funktioniert der: Zumindest kommt das zu erwartende Ergebnis raus:

                  PHP-Code:
                  SELECT IDBildIDUserID
                  FROM tabelle1
                  LEFT JOIN tabelle2 ON 
                  ID BildID
                  AND UserID =
                  Da die Tabellennamen nicht gleich sind, wie ich hier als Beispiel gegeben hatte, musste ich die Bedingung so verknüpfen.

                  Wenn nun aber die Namen gleich wären, würde dann:

                  PHP-Code:
                  SELECT IDBildIDUserID
                  FROM tabelle1
                  LEFT JOIN tabelle2 ON UserID 
                  =AND Using(BildID
                  funktionieren? Theoretisch genommen eben^^..

                  mfg

                  Kommentar


                  • #10
                    Laut phpmyadmin funktioniert der
                    Ist ja auch eine andere Query nun.

                    Wenn nun aber die Namen gleich wären, würde dann: funktionieren? Theoretisch genommen eben^^..
                    Nein. Das verrät dir das Manual. Außerdem kannst du das ganz einfach ausprobieren, indem du die Query absetzt und guckst, welche Fehlermeldung du erhältst.

                    Kommentar


                    • #11
                      Du bist zu schnell im Antworten :/

                      Hatte es dann auch mal getestet und egal wie ich es probiert habe .. mit bedingung + Using (was ja auch komplett groß geschrieben werden sollte xD) ... es kann immer ein Syntax error..

                      Laut Manual: Entweder On, oder Using...

                      Insofern

                      Danke für deine Hilfe ^^..

                      mfg

                      Kommentar

                      Lädt...
                      X