Announcement

Collapse
No announcement yet.

selectanweisung über mehrere tabellen die abhängig sind

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

  • selectanweisung über mehrere tabellen die abhängig sind

    hallo,

    ich bin neuling in sachen sql und hoffe ihr seht mein problem nicht als zu nichtig an, um darauf zu antworten.

    ich habe mehrere tabellen:

    tabelle 1 "controls" mit controlID, name, typ, etc.

    typ ist hier foreign key zur tabelle 2 und verweist dort auf die ID als primery

    tabelle 2 "control_typ" mit typID, feldtyp, tabellenname

    tabellename enthält den namen der tabelle 3

    tabelle 3 "control_ganzzahlfeld" mit ID, default, min-wert, max-wert, schrittweite, etc

    jetzt möchte ich gerne alle attribute zum control mit der id=xy abfragen, kenne aber nichts anderes...

    wie muss ich jetzt das select statement so verschachteln daß ich am schluß folgendes ergebnis bekomme: (also quasi ein select * from tabelle 3 abhängig vom control ID)

    controlID | default | min | max | etc



    ich hab schon diverse bücher gewälzt, komme aber einfach nicht auf den trick.

    ich hoffe jemand hier kann mir helfen.

    gruß
    con

  • #2
    Hallo con,

    am besten du postest die Create-Statements der Tabellen. Aus deinen Tabellenbeschreibungen werd ich nämlich nicht so richtig schlau.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Ok, dann also hier mal die creates:

      CREATE TABLE `controls` (
      `controlID` int(10) NOT NULL auto_increment,
      `controlname` varchar(255) default NULL,
      `typ` int(10) default NULL,
      `kategorie` int(10) default NULL,
      `information` varchar(255) default NULL,
      `pflichtfeld` varchar(255) default NULL,
      `editierbar` varchar(255) default NULL,
      `feld` varchar(255) default NULL,
      `tooltip` varchar(255) default NULL,
      PRIMARY KEY (`controlID`),
      CONSTRAINT `kategorie` FOREIGN KEY (`kategorie`) REFERENCES `kategorien` (`kategorieID`) ON DELETE SET NULL ON UPDATE CASCADE,
      CONSTRAINT `typ` FOREIGN KEY (`typ`) REFERENCES `control_typ` (`typID`) ON UPDATE CASCADE
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

      DROP TABLE IF EXISTS `control_typ`;
      CREATE TABLE `control_typ` (
      `typID` int(10) NOT NULL auto_increment,
      `feldtyp` varchar(255) default NULL,
      `tabellenname` varchar(45) NOT NULL,
      PRIMARY KEY (`typID`)
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1;


      jetzt noch beispielsweise eine der tabellen aus der quasi dritten ebene

      DROP TABLE IF EXISTS `control_ganzzahlfeld`;
      CREATE TABLE `control_ganzzahlfeld` (
      `ganzzahlfeldID` int(10) NOT NULL,
      `default` varchar(255) default NULL,
      `min` varchar(255) default NULL,
      `max` varchar(255) default NULL,
      `schrittweite` varchar(255) default NULL,
      `tausenderpunkt` varchar(255) default NULL,
      PRIMARY KEY (`ganzzahlfeldID`)
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1;


      im prinzip brauch ich ejtzt ne abfrage die mir alle attribute rausgibt, die ein conrol mit der id xy hat (in dem fall ist dieses control halt dann ein ganzzahlfeld, aber es muss analog noch für andere funktionieren, sei es fließzahl, datum, etc.)

      ich hoffe jetzt wird mein problem klarer.

      gruß
      con

      Comment


      • #4
        Sorry, aber aus deinen Beschreibungen werd ich nachwievor nicht schlau .
        Es gibt keine Tabelle die Rückschlüsse auf ein CONTROL mit ID zulassen würde. Zwar gibt es eine Tabelle controls, diese hat aber kein Feld id - ist hier vielleicht die controlID gemeint? Deine Tabelle control_ganzzahlfeld hängt "völlig in der Luft", es gibt keinen Fremdschlüssel und auch kein Feld, das Rückschlüsse auf eine Beziehung zu den anderen Tabellen zulassen würde.

        Tut mir leid, meine Glaskugel hab ich zu hause vergessen.

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          hi, wie gesagt, ich bin absoluter laie was das angeht, ich versuchs mal die so zu erklären wie ich es möchte...

          also, ich hab controls die über die dontrolID identifiziert werden...(in tabelle controls)...
          in der tabelle ist auch der tap über ne typID hinterlegt, der als fremdschlüssel auf die tabelle control_typ zeigt... dort steht dann zum entsprechenden typ der name der tabelle, um dessen typ es geht...(z.b. control_ganzzahlfeld, oder control_datumsfeld oder etc )... in der tabelle control_ganzzahlfeld sind dann die ID und die entsprechenden anttribute für ein entsprechendes control hinterlegt...die ganzzahlfeldID muss dabei gleich der controlID sein, sofern das entsprechende control ein solches ganzzahlfeld ist...
          nun brauch ich also eine abfrage, die wenn ich die controlID eingebe folgendes ausspuckt:
          den controlnamen und die controlattribute...

          hab ich einen grundlegenden fehler im design drin? und wenn ja, wie bekomm ich den raus?

          gruß
          con

          Comment


          • #6
            Hallo,
            wenn ich dich jetzt richtig verstanden habe, dann hast du zu jedem Controltyp eine eigene Tabelle für die Attribute, deren (der Tabelle) Name in einem Feld einer Tabelle steht. Richtig!?
            Wenn ja, dann kann ich deine Frage
            Originally posted by conqueror74 View Post
            ...hab ich einen grundlegenden fehler im design drin?...
            nur mit einem eindeutigen Ja beantworten. Wenn du das auslesen willst, bist du immer auf die "Hilfe" der Applikation angewiesen. Also zuerst controls und control_typ auslesen und anhand des Feldes control_typ.tabellenname ein Select für die Attribute zusammenbauen.
            Originally posted by conqueror74 View Post
            ...und wenn ja, wie bekomm ich den raus? ...
            Ich würde EINE Tabelle für die Attribute anlegen, und diese schön mit FK mit der tabelle control_typ verbinden. Die eigentlichen Attribute würde ich in EINEM Textfeld in der Form:
            default=
            min=
            max=
            schrittweite=
            tausenderpunkt=
            , etc. ablegen.

            Gruß Falk
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment

            Working...
            X