php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #16 (permalink)  
Alt 25-07-2008, 18:50
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Welche Indexe hast du gesetzt?

führ auch mal nen EXPLAIN aus.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #17 (permalink)  
Alt 25-07-2008, 19:13
none
 Registrierter Benutzer
Links : Onlinestatus : none ist offline
Registriert seit: Apr 2006
Beiträge: 68
none ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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

Geändert von none (25-07-2008 um 19:15 Uhr)
Mit Zitat antworten
  #18 (permalink)  
Alt 25-07-2008, 19:17
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

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.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #19 (permalink)  
Alt 25-07-2008, 19:53
none
 Registrierter Benutzer
Links : Onlinestatus : none ist offline
Registriert seit: Apr 2006
Beiträge: 68
none ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aber ich brauche doch die Angebote aus der Angebotstabelle.

Und die einzige Verbindung zu diesen ist die Regions ID.
Mit Zitat antworten
  #20 (permalink)  
Alt 25-07-2008, 19:59
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

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.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #21 (permalink)  
Alt 25-07-2008, 20:11
none
 Registrierter Benutzer
Links : Onlinestatus : none ist offline
Registriert seit: Apr 2006
Beiträge: 68
none ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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.
Mit Zitat antworten
  #22 (permalink)  
Alt 25-07-2008, 20:34
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

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?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #23 (permalink)  
Alt 25-07-2008, 21:01
none
 Registrierter Benutzer
Links : Onlinestatus : none ist offline
Registriert seit: Apr 2006
Beiträge: 68
none ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #24 (permalink)  
Alt 25-07-2008, 21:04
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Mit deinen Spaltennamen ist mir das ehrlich gesagt ein bisschen zu doof...
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #25 (permalink)  
Alt 25-07-2008, 21:07
none
 Registrierter Benutzer
Links : Onlinestatus : none ist offline
Registriert seit: Apr 2006
Beiträge: 68
none ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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?
Mit Zitat antworten
  #26 (permalink)  
Alt 25-07-2008, 21:08
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

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

Du machst es einem nicht leicht!

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

Zitat:
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?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #27 (permalink)  
Alt 25-07-2008, 21:14
none
 Registrierter Benutzer
Links : Onlinestatus : none ist offline
Registriert seit: Apr 2006
Beiträge: 68
none ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #28 (permalink)  
Alt 25-07-2008, 21:19
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

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.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #29 (permalink)  
Alt 25-07-2008, 21:23
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
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
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #30 (permalink)  
Alt 25-07-2008, 21:24
none
 Registrierter Benutzer
Links : Onlinestatus : none ist offline
Registriert seit: Apr 2006
Beiträge: 68
none ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:35 Uhr.