Twilo: Abfrage (mir fällt kein sinnvoller Betreff ein)

Hallo,

ich habe z. B. zwei Tabellen

+------------+   +------------+
| guppen_id  |   | id         |
+------------+   +------------+
| user_id    |   | user_id    |
+------------+   +------------+
                 | ...        |
                 +------------+

ich möchte jetzt aus der zweiten Tabelle die Daten Abrufen, aber nur von denen, wo die user_id der Gruppe z.B. 2 angehört

mfg Twilo

  1. Hallo,

    ich möchte jetzt aus der zweiten Tabelle die Daten Abrufen, aber nur von denen, wo die user_id der Gruppe z.B. 2 angehört

    So etwas nennt man eine JOIN-Abfrage. Ob und wie genau das mit Deiner Datenbank funktioniert steht in der Produktdokumentation, da es zwischen den verschiedenen Datenbanksystemen durchaus Unterschiede gibt, selbst wenn sie alle SQL beherrschen (was ja nicht unbedingt sein muss).

    Grüße
      Klaus

    1. Hallo,

      ich möchte jetzt aus der zweiten Tabelle die Daten Abrufen, aber nur von denen, wo die user_id der Gruppe z.B. 2 angehört

      So etwas nennt man eine JOIN-Abfrage. Ob und wie genau das mit Deiner Datenbank funktioniert steht in der Produktdokumentation, da es zwischen den verschiedenen Datenbanksystemen durchaus Unterschiede gibt, selbst wenn sie alle SQL beherrschen (was ja nicht unbedingt sein muss).

      Als Datenbank System kommt MySQL 4 im Einsatz, vielleicht auch 3.23.xx

      das kann ich jetzt noch nicht genau sagen, mir ist aber bewusst, dass MySQL 4 etwas mehr kann als MySQL 3 ;)

      wie müsste ich denn mein PHP-Script schreiben?
      ich steh da etwas im Dunkeln

      1. Hallo,

        Als Datenbank System kommt MySQL 4 im Einsatz, vielleicht auch 3.23.xx
        wie müsste ich denn mein PHP-Script schreiben?

        Keine Ahnung, da ich weder mit MySQL noch mit PHP arbeite, aber
        http://dev.mysql.com/doc/mysql/de/SELECT.html
        http://dev.mysql.com/doc/mysql/de/JOIN.html (das betrifft dein aktuelles Problem auf der Datenbankseite)
        und
        http://www.php.net/manual/de/ref.mysql.php (vor allem die Beispiele, welche sich mit dem AUsführen von Abfragen betrifft)
        sollte ausreichen, eine brauchbare Problemlösung zu finden.

        Grüße
          Klaus

        1. Hallo,

          falls ich kein MySQL 4 habe, kann ich ja kein join verwenden

          dann müsste ich ja erstmal

          beim ersten mal die user_id's abfragen

          $sql = sprintf ('SELECT %s FROM %s WHERE 1 AND %s=%s', 'user_id', _DBTAB.'gruppen', 'gruppen_id', 2);
          if (_DUMPEN)...;
          $userIDs = $db->getAssoc($sql);
          if (_DUMPEN) ...;
          if(DB::isError($userIDs)){
            die($userIDs->getMessage());
            exit();
          }

          $userIDs ist jetzt ein Array mit den user_id's

          wie muss ich jetzt die 2. Abfrage starten?
          wie muss ich da die WHERE Bedingung schreiben?
          kann ich da einfach ein Array übergeben?

          mfg

          1. yo,

            falls ich kein MySQL 4 habe, kann ich ja kein join verwenden

            wer sagt den sowas ?

            Ilja

            1. Hallo,

              falls ich kein MySQL 4 habe, kann ich ja kein join verwenden
              wer sagt den sowas ?

              auf MySQL.com steht

              Beachten Sie, dass vor Version 3.23.17 INNER JOIN keine join_bedingung aufnahm!

              ps. gibt es MySQL 3.x.xx gar nicht mehr zum Download?
              unter http://dev.mysql.com/downloads/mysql/4.0.html finde ich rechts keine Rubrik mit 3

              1. yo,

                auf MySQL.com steht

                Beachten Sie, dass vor Version 3.23.17 INNER JOIN keine join_bedingung aufnahm!

                also ich vermute, da bringst du etwas durcheinander. ein dbms ohne joins ist wie butter ohne brot. zeig doch mal den genauen link auf die seite, da wird sicherlich von bugs dire rede sein, aber nicht, dass man keine joins anwenden kann.

                Ilja

                1. Hallo,

                  auf MySQL.com steht

                  Beachten Sie, dass vor Version 3.23.17 INNER JOIN keine join_bedingung aufnahm!

                  also ich vermute, da bringst du etwas durcheinander. ein dbms ohne joins ist wie butter ohne brot. zeig doch mal den genauen link auf die seite, da wird sicherlich von bugs dire rede sein, aber nicht, dass man keine joins anwenden kann.

                  http://dev.mysql.com/downloads/mysql/4.0.html
                  kann natürlich sein, dass ich mich täusche ;-)

                  1. Hallo,

                    ups, hab eben den falschen Link kopiert
                    hier ist der richtige
                    http://dev.mysql.com/doc/mysql/de/JOIN.html

                    1. yo,

                      da interpretierst du etwas falsch. der folgende satz besagt nicht, dass mysql vorher keine join konstrukte kannte, sondern nur dass der inner join vorher keine join_bedingungen aufnahm:

                      "Beachten Sie, dass vor Version 3.23.17 INNER JOIN keine join_bedingung aufnahm!"

                      das sind zwei ganz verschiedene aussagen ;-)

                      Ilja

                      1. Hallo,

                        da interpretierst du etwas falsch. der folgende satz besagt nicht, dass mysql vorher keine join konstrukte kannte, sondern nur dass der inner join vorher keine join_bedingungen aufnahm:

                        "Beachten Sie, dass vor Version 3.23.17 INNER JOIN keine join_bedingung aufnahm!"

                        das sind zwei ganz verschiedene aussagen ;-)

                        ok, überedet :-)

                        1. yo,

                          ich überlege gerade, was eine relationale datenbank ohne joins wäre. das müsste in etwa so was wie excel sein...

                          Ilja

                          1. Hallo,

                            ich überlege gerade, was eine relationale datenbank ohne joins wäre. das müsste in etwa so was wie excel sein...

                            Es gibt durchaus Datenbanken, die die JOIN-Syntax, so wie sie z.B. bei mySQL möglich ist, nicht interpretieren kann. Nichtsdestotrotz sind es relationale Datenbanksysteme, nur muss man einen Join anders formulieren.

                            Theoretisch (und villeicht auch praktisch), kann es auch RDBMSen geben, die nicht mal SQL verstehen.

                            Grüße
                              Klaus

                            1. yo,

                              Es gibt durchaus Datenbanken, die die JOIN-Syntax, so wie sie z.B. bei mySQL möglich ist, nicht interpretieren kann. Nichtsdestotrotz sind es relationale Datenbanksysteme, nur muss man einen Join anders formulieren.

                              es ging ja nicht darum, ob das kind nun einen anderen namen hat, sondern generell um die möglichekeit, mehrere tabellen miteinander zu verbinden oder nicht. und jedes rdbms sollte das können oder man nennt es halt excel....

                              Ilja

                              1. Hallo,

                                [...]
                                und jedes rdbms sollte das können oder man nennt es halt excel....

                                seit wann ist excel eine Datenbank?

                                1. yo,

                                  seit wann ist excel eine Datenbank?

                                  ist keine datenbank, nur wenn es keine join funktionalität gibt, dann sieht es dem programm ähnlich....

                                  Ilja

                              2. Hallo,

                                es ging ja nicht darum, ob das kind nun einen anderen namen hat, sondern generell um die möglichekeit, mehrere tabellen miteinander zu verbinden oder nicht. und jedes rdbms sollte das können oder man nennt es halt excel....

                                Erstelle in einer Arbeitsmappe "Mappe1.xls" folgende Tabellenblätter:
                                Abteilungen
                                Id  Bezeichnung
                                1   Einkauf
                                2   Verkauf

                                Namen
                                Id  Name     Abteilung_Id
                                1   Müller   1
                                2   Maier    1
                                3   Schulze  2
                                4   Lehmann  2

                                Nun erstelle mit Microsoft Query folgende Abfrage:

                                SELECT Abteilungen$.Bezeichnung, Namen$.Name
                                FROM D:\Eigene Dateien\Mappe1.Abteilungen$ Abteilungen$, D:\Eigene Dateien\Mappe1.Namen$ Namen$
                                WHERE Abteilungen$.Id = Namen$.Abteilung_Id

                                und urteile nie wieder vorschnell über Excel ;-))

                                viele Grüße

                                Axel

                                1. yo,

                                  und urteile nie wieder vorschnell über Excel ;-))

                                  ok, excel kann mehr als wie ich mit excel umgehen kann. dann ist es eben ein excel light ;-)

                                  Ilja

  2. Hallo,

    ich habe z. B. zwei Tabellen

    +------------+   +------------+
    | guppen_id  |   | id         |
    +------------+   +------------+
    | user_id    |   | user_id    |
    +------------+   +------------+
                     | ...        |
                     +------------+

    ich möchte jetzt aus der zweiten Tabelle die Daten Abrufen, aber nur von denen, wo die user_id der Gruppe z.B. 2 angehört

    mfg Twilo

    select tabelle2.*
    from tabelle2 join tabelle1 on tabelle1.user_id = tabelle2.user_id
    where tabelle1.gruppen_id = 2

    1. Hallo,

      ich habe z. B. zwei Tabellen

      +------------+   +------------+
      | guppen_id  |   | id         |
      +------------+   +------------+
      | user_id    |   | user_id    |
      +------------+   +------------+
                       | ...        |
                       +------------+

      ich möchte jetzt aus der zweiten Tabelle die Daten Abrufen, aber nur von denen, wo die user_id der Gruppe z.B. 2 angehört

      select tabelle2.*
      from tabelle2 join tabelle1 on tabelle1.user_id = tabelle2.user_id
      where tabelle1.gruppen_id = 2

      das muss ich erstmal verinnerlichen, ich hatte mir zwar schon http://dev.mysql.com/downloads/mysql/4.0.html angeschaut, so richtig schlau wurde ich dadurch aber noch nicht

      ich werde damit wohl mal etwas rumtesten müssen :-)

      danke für deine Antwort