Abfragen auf 3 Tabellen bezogen

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

  • Abfragen auf 3 Tabellen bezogen

    Hallo,

    ich steh derzeit vor einem Problem.

    Ich habe drei Tabellen:

    CREATE TABLE `meldungen2` (
    `id` int(3) NOT NULL auto_increment,
    `start_nr` int(2) NOT NULL,
    `renn_nr` int(2) NOT NULL,
    `melder` int(1) NOT NULL,
    `bestaetigt` int(1) NOT NULL,
    `name1` varchar(50) NOT NULL,
    `vorname1` varchar(50) NOT NULL,
    `geburt1` year(4) default NULL,
    `kader1` int(1) NOT NULL,
    `drvid1` varchar(9) NOT NULL,
    `verein1` int(2) NOT NULL,
    `name2` varchar(50) NOT NULL,
    `vorname2` varchar(50) NOT NULL,
    `geburt2` year(4) default NULL,
    `kader2` int(1) NOT NULL,
    `drvid2` varchar(9) NOT NULL,
    `verein2` int(2) NOT NULL,
    `kosten` int(4) NOT NULL default '0',
    `abgemeldet` int(1) NOT NULL default '0',
    `tag` int(1) NOT NULL default '9',
    `bezahlt` int(1) NOT NULL,
    `bar` int(1) NOT NULL,
    `scheck` int(1) NOT NULL,
    `ueber` int(1) NOT NULL,
    `quittung` int(1) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=latin1
    COLLATE=latin1_general_ci PACK_KEYS=0 AUTO_INCREMENT=11 ;


    CREATE TABLE `rennen2` (
    `id` int(11) NOT NULL auto_increment,
    `aktiv` int(1) NOT NULL default '0',
    `renn_nr` int(2) NOT NULL,
    `renn_name` varchar(80) NOT NULL default '',
    `personen` int(1) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
    COLLATE=latin1_general_ci PACK_KEYS=0 AUTO_INCREMENT=4 ;

    CREATE TABLE `vereine` (
    `id` int(11) NOT NULL auto_increment,
    `name` varchar(120) NOT NULL,
    `kurz` varchar(12) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=178 DEFAULT CHARSET=latin1
    COLLATE=latin1_general_ci AUTO_INCREMENT=178 ;


    In der Tabelle "meldungen2" stehen in den Spalten "verein1" und "verein2" jeweils die Kennnummern der Vereine die in der Tabelle "vereine" hinterlegt sind. Das Gleiche ist bei der Spalte "renn_nr" und der Tabelle "rennen2" der Fall.

    Ich schaff es nun einfach nicht einen Query zu erstellen der mir Ausgbit was ich will.


    Standard Query mit SELECT * liefert zb.

    1 1 1 1 Hans Wurst 1 12 12 .......

    Jetz will ich aber Anstelle der 12 als Wert von "verein1" den Eintrag "kurz" aus der Tabelle "vereine" haben.

    Sowohl für "verein1" als auch für "verein2".

    Ich habe bestimmt drei Wochen probiert mir mit LEFT, RIGHT, INNER JOIN zu helfen. Aber ich steige da nicht durch.


    Bitte helft mir doch!

    Besten Dank!!!!!

  • #2
    Ich habe bestimmt drei Wochen probiert mir mit LEFT, RIGHT, INNER JOIN zu helfen. Aber ich steige da nicht durch.
    nach drei Wochen solltest Du es aufgeben, hat wohl keinen Sinn...
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      ....und das nächste mal dann etwas Konstruktives. Leere Phrasen ballern kann jeder.

      Deine Aussage ist nullwertig.

      Du sagt werder das es GEHT noch das es NICHT GEHT. Noch Lösungsansätze / Vorschläge. Dafür ist das Forum eigentlich gedacht nech?

      Ich hoffe die anderen Forumnutzer sind etwas mehr auf der Höhe als du.

      MfG

      Kommentar


      • #4
        Deine Aussage ist nullwertig.
        Mehrwert als deine Aussage auf jeden Fall. Spätestens nach der Lektüre der Stickies und entsprechender Tutorials (zum Beispiel bei Kropff) solltest du konkretere Fragen stellen können.
        Du sagt werder das es GEHT noch das es NICHT GEHT.
        Natürlich geht das.
        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

        Kommentar


        • #5
          So damit das jetz hier nicht ausartet:

          SELECT start_nr, b.renn_name, name1, vorname1, a.kurz AS Verein, geburt1, name2, vorname2,geburt2, c.kurz AS Verein
          FROM meldungen2
          LEFT JOIN vereine a ON (meldungen2.verein1 = a.id)
          LEFT JOIN vereine c ON (meldungen2.verein2 =c.id)
          INNER JOIN rennen2 b ON (meldungen2.renn_nr = b.renn_nr)

          Somit wäre die Lösung perfekt und der Drops für mich gelutscht.

          Kommentar


          • #6
            und das nach 3 wochen
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar

            Lädt...
            X