Viele Tabellen und Spalten (Verwirrung?)

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

  • #16
    Welche Indexe hast du gesetzt?

    führ auch mal nen EXPLAIN aus.

    Kommentar


    • #17
      Ich weiß nicht genau welche Informationen du benötigst:
      id select_type table type possible_keys key key_len ref rows Extra
      1 SIMPLE Tbl_plz_gebiete const PRIMARY PRIMARY 4 const 1 Using temporary; Using filesort
      1 SIMPLE Angebotstabelle ref C003 C003 4 const 53 Using where
      1 SIMPLE tbl_zuordnung ref C001,C001_2 C001 4 const 722 Using where
      1 SIMPLE Tbl_plz_gebiete ALL NULL NULL NULL NULL 8270

      Also Index hab ich auf tbl_zuordnung.region_id, tbl_zuordnung.plz,
      Angebotstabelle.Kategorie, Angebotstabelle.Regionsid und regionsname
      Das müssten Sie sein
      Zuletzt geändert von none; 25.07.2008, 18:15.

      Kommentar


      • #18
        Auf den ersten Blick:

        Code:
        LEFT JOIN Angebotstabelle ON Angebotstabelle.regions_id = Tbl_plz_gebiete.ID
        WHERE Tbl_plz_gebiete.ID = '6748'
        Das ist bullshit. Ein überflüssiger JOIN um genau zu sein.

        Kommentar


        • #19
          Aber ich brauche doch die Angebote aus der Angebotstabelle.

          Und die einzige Verbindung zu diesen ist die Regions ID.

          Kommentar


          • #20
            Die Verknüpfung macht aber keinen sinn. Du verknüpfst mittels einer eigenschaft, die du im nächsten Schritt ohnehin wieder auf eine ganz bestimmte ausprägung einschränkst. Ich bin nicht ganz in deinem Thema drin, aber normalerweise macht das keinen sinn.

            Aber wie gesagt, ich bin nicht ganz drin.

            kannst du mal die Kardinalitäten der Tabellen/Beziehungen aufzeigen.

            Kommentar


            • #21
              Ich versuchs mal, ist schon recht Umfangreich

              Angebotstabelle.region_id = plz_zuordnung.gebietsid -> 1:n
              plz_zuordnung.gebietsid = Tbl_plz_gebiete.ID -> n:1
              plz_zuordnung.plz = plz_stammdaten.plz -> 1:1

              Das müsste es gewesen sein für die 4 Tabellen.

              Ich habe die Tabellen etwas umbenannt, weil ich für die letzte Bezeichnung eher spott erntete.
              Meine Tabellen (firma wo ich arbeite) heißen eigentlich T000 -> T300 und Spalten C000 -> C999
              Deshalb bitte nicht wundern wenn die Tabellen etwas anders heissen in Beispielen, aber ich denke damit kann man die besser auseinander halten.

              Kommentar


              • #22
                Also, deine Bennennungen sind mir im Moment auch die größte Hürde.

                Um mal auf nen gemeinsamen Nenner zu kommen:

                Zuordnung:
                Gebiet_ID | PLZ

                PLZ-Gebiete
                Gebiet_ID | Bezeichnung | Typ

                PLZ-Stammdaten:
                PLZ | Ort

                Angebote
                Angebot_ID | Gebiet_ID

                Gleiche Namen = Fremdschlüssel, Unterstrichen = Primär

                Soweit richtig?

                Und ist das WHERE "Gebiet_ID = 6748" gewollt? Oder soll keine Selektion stattfinden?

                Kommentar


                • #23
                  Okay

                  T130 (PLZ-Stammdaten)
                  ----------------------------------
                  ID
                  C002 (PLZ)
                  ----------------------------------

                  T132
                  ----------------------------------
                  ID
                  C001 (GebietsId aus T131)
                  C002 (PLZ aus T130)
                  C003 (Land)
                  -----------------------------------

                  T131
                  ----------------------------------
                  ID
                  C001 (Gebietsname)
                  C002 (Gebietstyp)
                  ---------------------------------
                  T250
                  ---------------------------------
                  ID
                  C001 (Kat-String)
                  C002 (Region Name)
                  C003 (Regions ID)
                  ---------------------------------

                  Die Zuordnung
                  T132.C001 = T131.C001
                  T132.C002 = T130.C002
                  T250.C003 = T131.ID


                  Jetzt muss man sich folgendes Senario vorstellen:

                  ich suche alle Angebote aus Bsp: Bundesland NRW -> Landkreis Herford
                  PHP-Code:
                  SELECT  T250.IDT130.C003,T130.C002,T250.C001T250.C002T250.C005T131.C001
                  FROM T132
                  left JOIN T131 ON T131
                  .ID T132.C001
                      LEFT JOIN T130 ON T132
                  .C002 T130.C002
                      
                          left JOIN T250 ON T250
                  .C003 T131.ID
                  WHERE T131
                  .ID '6748'
                  GROUP BY T250.ID 
                   ORDER BY 
                  `T250`.`IDASC 
                  Das war der erste Lösungsansatz

                  Ich hoffe das kann man jetzt irgendwie besser nachvollziehen

                  Kommentar


                  • #24
                    Mit deinen Spaltennamen ist mir das ehrlich gesagt ein bisschen zu doof...

                    Kommentar


                    • #25
                      deshalb hatte ich sie immer umbenannt

                      gehen wir einfach davon aus, das du nur die Zuordnungen kennst lass den code mal aussen vor.

                      kann man da irgendwo einen Fehler erkennen?

                      Kommentar


                      • #26
                        ich suche alle Angebote aus Bsp: Bundesland NRW -> Landkreis Herford
                        Bundesland == Land? Landkreis == Gebiet? Oder Region_name?

                        Du machst es einem nicht leicht!

                        deshalb hatte ich sie immer umbenannt
                        Und wieso kommst du mir dann jetzt wieder mit dem scheiß? Willst es mir extra schwer machen?

                        gehen wir einfach davon aus, das du nur die Zuordnungen kennst lass den code mal aussen vor. kann man da irgendwo einen Fehler erkennen?
                        Du meinst am DB-Layout?

                        Kommentar


                        • #27
                          Sorry, das liegt nicht in meiner Absicht

                          Bundesland bsp: NRW , Region -> Landkreis oder regierungsbezirk
                          Dazu muss ich sagen, dass in der T131 folgendes steht


                          Gebietsname -> Orte etc
                          Gebietstyp -> kann sein 'Bundesland', 'Regierungsbezirk', 'landkreis'

                          das ist das komplizierte daran wie ich finde

                          Kommentar


                          • #28
                            Das Bundesland NRW interessiert mich doch gar nicht mehr, wenn ich weiß, dass ich den Landkreis Herford haben will. Warum langweilst/verwirrst du mit solch irrelevanten Daten.

                            Ich versuche ernsthaft dir zu helfen und stecke schon recht tief in deinem Problem drin, aber ich habe das Gefühl, dass du mit jeder einschränkenden Frage, die ich stelle mehr Verwirrung verursachst.

                            Kommentar


                            • #29
                              ich suche alle Angebote aus Bsp: Bundesland NRW -> Landkreis Herford
                              SELECT * FROM 250 a LEFT JOIN 131 b USING(gebiet_id) WHERE name = herford AND typ = Landkreis

                              Kommentar


                              • #30
                                Also ich danke dir das du mir helfen willst, ich verwirre dich sicherlich nicht gern und nicht absichtlich.

                                Also das Ergebnis was ich mir erhoffe ist die Ausgabe

                                Landkreis | ort | plz | tabelle Angebote

                                mehr eigentlich nicht

                                Kommentar

                                Lädt...
                                X