unlösbares problem??

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

  • unlösbares problem??

    ich habe folgendes Problem und habe nicht einmal den Ansatz einer Lösung....glaube ehrlich gesagt auch nicht, dass es mit MySql lösbar ist.

    ich habe eine Tabelle, die wie folgt aussieht:

    CREATE TABLE tab (
    id int(10) unsigned NOT NULL auto_increment,
    show tinyint(3) NOT NULL,
    PRIMARY KEY (id)
    ) TYPE=MyISAM;

    mit dem Inhalt

    |---id---|---show---|
    |---1---|------0-----|
    |---2---|------1-----|
    |---3---|----- 1-----|
    |---4---|------1-----|
    |---5---|------0-----|
    |---6---|------1-----|

    (es sollen nur datensätze, bei denen show=1 ist angezeigt werden!

    und dann habe ich drei weitere Tabellen, die alle gleich sind:

    CREATE TABLE tab1 (
    id int(10) unsigned NOT NULL auto_increment,
    tab_id smallint(5) unsigned NOT NULL default '0',
    `order` tinyint(3) unsigned NOT NULL default '0',
    PRIMARY KEY (id)
    ) TYPE=MyISAM;
    CREATE TABLE tab2 (
    id int(10) unsigned NOT NULL auto_increment,
    tab_id smallint(5) unsigned NOT NULL default '0',
    `order` tinyint(3) unsigned NOT NULL default '0',
    PRIMARY KEY (id)
    ) TYPE=MyISAM;
    CREATE TABLE tab3 (
    id int(10) unsigned NOT NULL auto_increment,
    tab_id smallint(5) unsigned NOT NULL default '0',
    `order` tinyint(3) unsigned NOT NULL default '0',
    PRIMARY KEY (id)
    ) TYPE=MyISAM;

    mit folgenden Inhalten:

    tab1:
    |---id---|---tab_id---|----order----|
    |---1---|-----2--------|------1-------|
    |---2---|-----1--------|------1-------|

    tab2:
    |---id---|---tab_id---|----order----|
    |---1---|-----6--------|------2-------|
    |---2---|-----4--------|------2-------|

    tab3:
    |---id---|---tab_id---|----order----|
    |---1---|-----5--------|------3-------|
    |---2---|-----3--------|------3-------|

    tab_id entspricht dem Feld `id` in der Tabelle tab

    meine Frage dazu: Ist es möglich, eine Abfrage zu erstellen, die folgende Daten liefert und nach order sortiert ist (wobei hier eigentlich erst das wahre Problem liegt!)??

    tab.id order
    2 1
    4 2
    6 2
    3 3

    Alle, die ich bis jetzt gefragt habe, sind der Meinung, es ist nicht lösbar (und ich übrigens auch), aber irgendwie habe ich doch noch einen Funken Hoffnung.
    Gibt es eine Lösung??

  • #2
    Ob das Lösbar ist, oder nicht, ist mehr eine Frage der von Dir eingesetzten MySQL - Version ... Da allerdings mittlerweile die 4.0.20 als Production Release gilt ... und immer Mehr Provider diese einsetzten, würde ich sagen: Sicher ist das Lösbar:

    http://dev.mysql.com/doc/mysql/en/UNION.html
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      hab jetzt über 1 Stunde lang herumprobiert, habe aber nie das richtige (gewollte) ergebnis erhalten. Gibt es noch eine andere Möglichkeit anstatt von UNION ??

      Kommentar


      • #4
        Hallo P_O_N.
        Eigentlich stört doch nur, dass die Daten in 3 Tabellen verteilt sind.
        Und was stört muss weg.
        Ohne Layoutänderung dann halt nur temporär:

        create temporary table tmp select ... from tab1
        insert into tmp select ... from tab2
        insert ... select ... tab3

        Kommentar

        Lädt...
        X