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
  #1 (permalink)  
Alt 27-08-2003, 11:44
Adler
 Junior Member
Links : Onlinestatus : Adler ist offline
Registriert seit: Jul 2003
Beiträge: 54
Adler ist zur Zeit noch ein unbeschriebenes Blatt
Adler eine Nachricht über ICQ schicken
Question Tabellen verknüpfen

Hi,

ich hab da eine Frage zum tabellen verknüpfen(wenn das eher zu brainstorming gehört bitte verschieben ) Die erste zum verknüpfen von Tabellen. Wenn ich z.B 4 Tabelle verknüpfen will, und dabei alle mit der ersten verknüpft sind

(also Tab1 -- Tab 2, Tab 1--Tab3, Tab 1 --4 ) dann müsste die Anweisung dafür doch wie folgt aussehen (ich hab gleichmal die namen die ich brauche eingesetzt):
PHP-Code:
... FROM    Hausverkabelung 
LEFT OUTER JOIN Switchold ON 
(Hausverkabelung.Switch=Switchold.Name)
LEFT OUTER JOIN Geräteliste ON (Hausverkabelung.MAC_ADRESSE_Node=Geräteliste.MACAdresse)
LEFT OUTER JOIN DAERaum ON (Hausverkabelung.Kennummer=DAERaum.HVKkennum)
WHERE DAERaum.Anschluss like '%%$Search%%'"; 
Oder täusche ich mich da?Ich frage deshalb weil das so bei mir immer abschmiert und ich mir die Ursache nicht erklären kann
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 27-08-2003, 11:52
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

abschmiert == kawumm, pc tot?

ich versteh die abfrage nicht so ganz, hast du u. U. datensätze aus Tab1 bei Tab1 - Tab2, die du bei Tab1 - Tab3 nicht hast?

probier mal
Code:
SELECT *
FROM
  switchold s 
  RIGHT OUTER JOIN hausverkabelung h
   ON s.name=h.switch
    LEFT OUTER JOIN geraeteliste g
     ON h.mac_adresse_node=g.macadresse
      RIGHT OUTER JOIN hausverkabelung h2
       ON h2.mac_adresse_node=g.macadresse
         LEFT OUTER JOIN daeraum r
          ON h2.kennummer=r.hvkkennum
WHERE 
  r.anschluss like '%%$Search%%'
  AND
  h2.id=h.id
ohne gewähr
__________________
Ich denke, also bin ich. - Einige sind trotzdem...

Geändert von mrhappiness (27-08-2003 um 11:56 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 27-08-2003, 12:38
Adler
 Junior Member
Links : Onlinestatus : Adler ist offline
Registriert seit: Jul 2003
Beiträge: 54
Adler ist zur Zeit noch ein unbeschriebenes Blatt
Adler eine Nachricht über ICQ schicken
Standard

Ja genau, wenn ich das ausführe steigt mir die cpu und Speicherauslastung auf 100%, solange bis ich eben den Db-Prozess von Hand kille. Will heißen die ganze Kiste ist solange tot.

Ich hab deinen Vorschlag gerade probiert gehabt, der Effekt ist allerdings der gleiche.

Zitat:
Ich versteh die abfrage nicht so ganz, hast du u. U. datensätze aus Tab1 bei Tab1 - Tab2, die du bei Tab1 - Tab3 nicht hast?
Nein eigentlich nicht, ich hab das so geschrieben gehabt, weil ich gelesen hatte dass man auf diese Art Tabellen miteinander verknüpft so wie ich es haben wollte.
Ursprünglich ist das ganze eine Abfrage aus Access (die den gleichen Effekt hatte), nur wollte ich a) dieses Problem beheben und b) das so schreiben dass da auch jemand ohne groß nachzudenken durchblickt. Hier mal die SQL Anweisung aus dem Access damit man sieht was ich meine:

PHP-Code:
SELECT ... (hab ich jetzt ma weggelassen
FROM Switchold RIGHT JOIN 
(Geräteliste RIGHT JOIN (Hausverkabelung LEFT JOIN DAERaum ON Hausverkabelung.Kennummer DAERaum.HVKkennum)
 
ON Geräteliste.MACAdresse Hausverkabelung.[MAC-ADRESSE_Node]) ON Switchold.Name Hausverkabelung.SWITCH; 
Mit Zitat antworten
  #4 (permalink)  
Alt 27-08-2003, 12:41
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

welche tabellen sind wie miteinander verknüpft?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #5 (permalink)  
Alt 27-08-2003, 12:53
Adler
 Junior Member
Links : Onlinestatus : Adler ist offline
Registriert seit: Jul 2003
Beiträge: 54
Adler ist zur Zeit noch ein unbeschriebenes Blatt
Adler eine Nachricht über ICQ schicken
Standard

Ich glaub ich seh gerade wo ich falsch gedacht hab.

Ich ging nämlich davon aus dass die Tabellen über die ON Beziehung verknüpft sind. Wenn ich mir aber die Access DB gerade ma anschaue sieht das ganz anders aus.

Will heißen, ich ging davon aus dass,

Hausverkabelung mit Switchold über
Hausverkabelung.Switch=Switchold.Name

Hausverkabelung mit Geräteliste über
Hausverkabelung.MAC_ADRESSE_Node=Geräteliste.MACAdresse

Und Hausverkabelung mit DAERaum über
Hausverkabelung.Kennummer=DAERaum.HVKkennum
verknüpft ist.

Im Access sieht das aber so aus :
Hausverkabelung mit Switchold über
H.Kennummer=S.ID

Hausverkabelung mit Geräteliste über
H.Kennummer=G.Kennummer

Und Hausverkabelung mit DAERaum über
Hausverkabelung.Kennummer=DAERaum.HVKkennum

Ich glaub da liegt mein Fehler...oder?
Mit Zitat antworten
  #6 (permalink)  
Alt 27-08-2003, 13:00
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Code:
SELECT h.kennummer, s.id, g.kennummer, r.hvkkennum
FROM
  switchold s
  RIGHT OUTER JOIN hausverkabelung h ON h.kennummer=s.id
    LEFT OUTER JOIN geraeteliste g USING (kennummer)
    RIGHT OUTER JOIN hausverkabelung h2 USING (kennummer)
      LEFT OUTER JOIN daerraum r ON h2.kennummer=r.hvkkennum
WHERE
  h.kennummer=h2.kennummer
so sollte es passen

was steht in den tabellen denn drin und was verknüpfst du da?
geht das nicht evtl. auch anders?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #7 (permalink)  
Alt 27-08-2003, 13:28
Adler
 Junior Member
Links : Onlinestatus : Adler ist offline
Registriert seit: Jul 2003
Beiträge: 54
Adler ist zur Zeit noch ein unbeschriebenes Blatt
Adler eine Nachricht über ICQ schicken
Standard

Also es funktioniert immer noch nicht.

Was meinst du mit was in den Tabellen steht? Was genau in meiner Select Anweisung steht?Das wäre folgendes:
PHP-Code:
 h.Kennummer,
          
s.Stack AS s_Stack
         
h.PORT
         
s.Unit AS s_Unit,
         
s.Stack_Mac
          
s.Stack_IP AS s_Stack_IP,
           
s.Name AS s_Name
           
r.Belegt
         
s.MAC_Adresse,
            
s.IP_Adresse AS s_IP_Adresse
         
s.Subnetmask,
          
s.Ort
          
s.Raum
         
s.Typ AS s_Typ
         
s.Inv,
         
s.Serien_Nr
         
s.Lieferant,
         
s.Lieferdatum
         
s.Bemerkung AS s_Bemerkung
        
h.VLAN
        
h.SOFTWARE
         
s.Kontakt
         
h.10_Mb_HD
         
h.10_Mb_FD
         
h.100_Mb_HD,
         
h.100_Mb_FD
         
h.1_Gb_FD,
          
h.SLOT
         
h.Disabled
         
h.SWITCH,
         
h.Bemerkung AS h_Bemerkung,
          
h.MAC_ADRESSE_Node
         
h.Gebäude
         
r.ANSCHLUSS_TYP
         
r.ANSCHLUSS
         
r.FOLGEANSCHLUSS,
         
r.BEMERKUNG
         
r.RAUM
         
r.HVKkennum
         
g.MACAdresse,
         
h.Kabelnummer,
         
r.Kabelnummer1,
         
r.Kabelnummer2,
         
s.ID,
         
g.Kennummer 

Weil generell steht in den tabellen:

DAERaum: Raumnummer,Telefonnummer,Anschlusstypen,Anschlussbezeichnungen usw.

Hausverkabelung: Jede Menge Verkabelungsdaten, bsp MAc-Adressen,Ort usw.

Switchold: Sämtliche Switchdaten

geräteliste: Sagt ja der Name + entsprechende Details.
Mit Zitat antworten
  #8 (permalink)  
Alt 27-08-2003, 15:43
Adler
 Junior Member
Links : Onlinestatus : Adler ist offline
Registriert seit: Jul 2003
Beiträge: 54
Adler ist zur Zeit noch ein unbeschriebenes Blatt
Adler eine Nachricht über ICQ schicken
Standard

Ich habs mal noch mit jener Methode versucht die ich im Netz gefunden hab.

PHP-Code:
 FROM
  Switchold s
Hausverkabelung h,Geräteliste g,DAERaum r
   WHERE h
.Kennummer=g.Kennummer
   
AND h.Kennummer=r.HVKkennum
   
AND h.Kennummer=s.ID
AND  r.ANSCHLUSS like '%%$Search%%'"; 
Da hängt sich zwar nichts auf, aber so findet er anscheinend auch nix. (Zumindest gibt er nix aus)
Mit Zitat antworten
  #9 (permalink)  
Alt 27-08-2003, 21:26
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

probier mal die join variante, aber nur mit hausverkabelung und daeraum

wenn das geht nimmst du nach und nach weitere tabellen dazu
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #10 (permalink)  
Alt 28-08-2003, 10:21
Adler
 Junior Member
Links : Onlinestatus : Adler ist offline
Registriert seit: Jul 2003
Beiträge: 54
Adler ist zur Zeit noch ein unbeschriebenes Blatt
Adler eine Nachricht über ICQ schicken
Standard

Ok, werde das gleich mal testen.
Mit Zitat antworten
  #11 (permalink)  
Alt 28-08-2003, 10:54
Adler
 Junior Member
Links : Onlinestatus : Adler ist offline
Registriert seit: Jul 2003
Beiträge: 54
Adler ist zur Zeit noch ein unbeschriebenes Blatt
Adler eine Nachricht über ICQ schicken
Standard

Also er hängt sich auch bei den 2 tabellen auf. Sowohl mit LEFT OUTER JOIN als auch mit LEFT JOIN.
Mit Zitat antworten
  #12 (permalink)  
Alt 28-08-2003, 14:04
Adler
 Junior Member
Links : Onlinestatus : Adler ist offline
Registriert seit: Jul 2003
Beiträge: 54
Adler ist zur Zeit noch ein unbeschriebenes Blatt
Adler eine Nachricht über ICQ schicken
Standard

Mit der Variante ohne Joins kann ich 2 Tabellen verknüpfen, aber alsbald ich eine 3. dazu tue, krieg ich kein Ergebnis. Mit Joins hängt die Kiste auch bei 2 Tabellen.

Leuchtet mir irgendwie nicht ein warum das nicht funktioniert...
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

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

21.10.2020 Berni | Kategorie: PHP/ Anzeigenmarkt
Sendeplan Script inkl. Wunsch- und Grußbox + Kick-System + Bewerbungssystem

Das professionelle Sendeplan PHP Script inkl. Wunsch- und Grußbox + Kick-System für dein Webradio. Der übersichtliche Sendeplan bietet deinen Moderatoren und Zuhörern die perfekte Übersicht der aktuellen Shows! Du kannst nicht nur Sendungen eintragen, s

20.10.2020 drcomputer | Kategorie: PHP/ Web Radio
Newsmanager 2

Der Newsmanager 2 ist sehr Vielfältig und kann News schreiben, Newsletter versenden und RSS Feeds in einem erzeugen.

20.10.2020 Stephan_1972 | Kategorie: PHP/ News
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:33 Uhr.