Announcement

Collapse
No announcement yet.

SQL Abfrage über 2 Tabellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL Abfrage über 2 Tabellen

    Hi Leute...<br>
    Der Titel mag etwas harmlos ausschauen...<br>
    Aber die gewünschte Abfrage hat es in sich <br>
    <br>
    Also ich habe 2 Tabellen:<br>
    <br>
    gametypes:<br>
    <pre>
    +-----------+--------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +-----------+--------------+------+-----+---------+-------+
    | id | int(11) | | | 0 | |
    | shortname | varchar(255) | YES | | NULL | |
    | longname | varchar(255) | YES | | NULL | |
    +-----------+--------------+------+-----+---------+-------+
    </pre>
    <br>
    Inhalt:<br>
    <pre>
    +----+-----------+------------------------------+
    | id | shortname | longname |
    +----+-----------+------------------------------+
    | 1 | wolf | Return to Castle Wolfenstein |
    | 2 | cs | CounterStrike |
    | 3 | ut2k3 | Unreal Tournament 2003 |
    +----+-----------+------------------------------+
    </pre>
    <br>
    team_gametypes:<br>
    <pre>
    +------------+---------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +------------+---------+------+-----+---------+-------+
    | teamid | int(11) | | | 0 | |
    | gametypeid | int(11) | | | 0 | |
    +------------+---------+------+-----+---------+-------+
    </pre>
    <br>
    Inhalt:<br>
    <pre>
    +--------+------------+
    | teamid | gametypeid |
    +--------+------------+
    | 1 | 1 |
    | 1 | 2 |
    +--------+------------+
    </pre>
    <br>
    Sodele...<br>
    <br>
    Ich möchte nun eine Ergebnismenge, die alle Spieltypen (tabelle gametypes) erhält, die NICHT dem Team (tabelle team_gametypes feld teamid) zugeordnet sind.<br>
    <br>
    Kurz gesagt...<br>
    Ich hätte als Ergebnis des Datenbestandes oben, folgendes:<br>
    <pre>
    +----+-----------+------------------------+
    | id | shortname | longname |
    +----+-----------+------------------------+
    | 3 | ut2k3 | Unreal Tournament 2003 |
    +----+-----------+------------------------+
    </pre>
    <br>
    Wenn es ein Genie hier im Forum gibt...her mit den Vorschlägen <br>
    <br>
    Achja...am besten wäre 1(!!!) SQL Statement <br>

    <br><br>
    Gruss
    Michael

  • #2
    Hallo Michael,

    als erstes ein kleiner Tip: nehme für solche Abfragen am besten Access, und probier es darüber aus (mach ich auch am meisten).

    So wie bei deinem Beispiel, war es eigentlich ganz einfach :-)
    <p>
    <b>SELECT</b> gametypes.id, gametypes.shortname, gametypes.longname
    <p>
    <b>FROM</b> gametypes LEFT JOIN team_gametypes ON gametypes.id = Team_gametypes.gametypid
    <p>
    <b>WHERE</b> (((team_gametypes.teamid) Is Null));

    <p>
    das hat einwandfrei unter Acces und unter MySQLfront geklapt und hat dein gewünschtes Ergebnis ausgeworfen.

    <p>
    Also wenn Du noch Fragen hast kannst ja posten oder mailen.
    <p>
    Gruß Marti

    Comment


    • #3
      Erst mal danke für deine Hilfe! <br><BR>

      Hört sich schon ganz gut an...<br>
      Jedoch wie sieht es aus, <br>
      wenn in der tabelle team_gametypes noch weitere teams sind?<br>
      <pre>
      +--------+------------+
      | teamid | gametypeid |
      +--------+------------+
      | 1 | 1 |
      | 1 | 2 |
      | 3 | 1 |
      | 4 | 3 |
      +--------+------------+
      </pre>
      <br>
      Und ich nun zu jedem Team, also where teamid = 4 , die entsprechenden nicht vorhandenen gametypes des jeweiligen teams haben möchte ??
      <br>

      Gruß Michae

      Comment


      • #4
        Hallo Michael,

        Also so eine geschachtelte Abfrage funzt nicht.
        vielleicht erzählt Du mal was damit bezweckt werden soll, damit es vielleicht mit einem Umbau der Tabellenstruktur, das dementsprechende Ergebnis zu erreichen?

        Gruß Marti

        Comment


        • #5
          Also es geht um folgendes...

          Ich habe eine Webseite auf der stehen verschiedene Teams...
          Wenn man nun ein Team anklickt, sieht man als administrator eine liste mit den eingetragenen Spieltypen.
          Also:
          Team1 spielt CS, UT und UT2k3

          Unten drunter soll nun eine combobox erscheinen, mit den spieltypen, die nicht eingetragen sind, welche man dem team hinzufügen kann.

          Also es gibt die spiele cs, ut, ut2k3, rtcw dann wäre in diesem fall in der kombo nur rtcw zu sehen...

          Klar geht es mit 2 sql's bzw. 2 for schleifen in php...
          Würde aber gerne wissen, ob es auch in einem Rutsch geht

          Trotzdem danke für die Hilfe...
          Und falls du ein DB Modell herausfinden solltest...danke ich dir schonmal im Vorraus :

          Comment

          Working...
          X