SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 12.08.2010, 16:36:09
KTB KTB ist offline
Member
 
Registriert seit: Mar 2006
Alter: 38
Beiträge: 599
Abfrage über fünf Tabellen

Hallo zusammen, da ich nun wieder etwas mehr mit SQL zu tun habe, bin ich auch hier mal wieder zu Wege.
Zu meinem Problem:
Ich möchte aus einer Tabelle gleichzeitig drei weitere abfragen,welche Informationen aus einer weiteren beziehen. Hört sich komisch an, deshalb mal hier die Tabellen:
Code:
Arbeitsplatz:
ID|ID_PC|ID_DRUCKER|ID_TELEFON
--+-----+----------+----------
01| 1001|      2001|      3001
02| 1002|      2002|      3002

PC:
ID  |ID_HERST|IP_ADDRESS|BEMERKUNG
----+--------+----------+---------
1001|    9001|1.1.100.11|     nein
1002|    9002|1.1.100.12|     jein
1003|    9003|1.1.100.13|     eine

Drucker:
ID  |ID_HERST|IP_ADDRESS|BEMERKUNG
----+--------+----------+---------
2001|    9004|1.1.100.14|   druckt
2002|    9005|1.1.100.15|     lala
2003|    9006|1.1.100.16|     abcd

Telefon:
ID  |ID_HERST|IP_ADDRESS|BEMERKUNG
----+--------+----------+---------
3001|    9007|99.1.10.11|     ring
3002|    9008|99.1.10.12|     lolo
3003|    9009|99.1.10.13|     biep

Hersteller:
ID  |H_NAME|FARBE     |BEMERKUNG
----+------+----------+---------
9001|FSC   |grau      |sauber
9002|Medion|weiß      |sauber
9003|Acer  |grau      |staubig
9004|HP    |grau      |OK
9005|Canon |schwarz   |staubig
9006|Epson |grau      |staubig
9007|Siemen|rot       |gut
9008|Siemen|grau      |gut
9009|AEG   |schwarz   |alt
Nun möchte ich aus der Arbeitsplatztabelle folgende Ausgabe erzeugen:
Code:
Arbeitsplatz:
ID|PC_HN |PC_IPADDRESS|DRUCKER_HN|TELEFON_HN
--+------+------------+----------+----------
01|FSC   |1.1.100.11  |Canon     |Siemen
02|Medion|1.1.100.12  |Epson     |Siemen
Ich möchte also immer die IP-Adresse, aber auch den Herstellernamen der jeweiligen Arbeitsplatzkomponente wissen.
Wie bekomme ich das am besten hin?
__________________
In der Ruhe liegt die Kraft!
Mit Zitat antworten
  #2  
Alt 12.08.2010, 16:39:18
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Abfrage über fünf Tabellen

Zitat:
Zitat von KTB Beitrag anzeigen
[..]
Wie bekomme ich das am besten hin?
JOIN
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

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
  #3  
Alt 12.08.2010, 17:13:40
KTB KTB ist offline
Member
 
Registriert seit: Mar 2006
Alter: 38
Beiträge: 599
AW: Abfrage über fünf Tabellen

Das ist mir schon klar, jedoch scheitere ich bisher an dem Problem, dass ich mir nicht im klaren bin, wie ich jedesmal neu auf die Herstellertabelle zugreifen kann. Verbinde ich die Herstellertabelle über den Drucker, wird der passende Hersteller-Datensatz für den Drucker angezeigt. Jetzt ist mir nicht klar wie ich in der gleichen abfrage das gleiche nochmal für PC oder Telefon machen soll.
__________________
In der Ruhe liegt die Kraft!
Mit Zitat antworten
  #4  
Alt 12.08.2010, 17:22:15
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Abfrage über fünf Tabellen

Zitat:
Zitat von KTB Beitrag anzeigen
[..], jedoch scheitere ich bisher an dem Problem, dass ich mir nicht im klaren bin, wie ich jedesmal neu auf die Herstellertabelle zugreifen kann. Verbinde ich die Herstellertabelle über den Drucker, ...
Wie sieht Dein SQL-Statment bisher aus?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

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
  #5  
Alt 13.08.2010, 12:18:07
Der-Dennis Der-Dennis ist offline
Anfänger
 
Registriert seit: Jul 2010
Alter: 37
Beiträge: 29
AW: Abfrage über fünf Tabellen

Hallo KTB,

Zitat:
Zitat von KTB Beitrag anzeigen
Jetzt ist mir nicht klar wie ich in der gleichen abfrage das gleiche nochmal für PC oder Telefon machen soll.
Du suchst wahrscheinlich einen Self Join.

Gruß, Dennis
Mit Zitat antworten
  #6  
Alt 16.08.2010, 10:08:42
KTB KTB ist offline
Member
 
Registriert seit: Mar 2006
Alter: 38
Beiträge: 599
AW: Abfrage über fünf Tabellen

Also bisher sieht es so aus:
Code:
SELECT HER1.H_NAME,HER2.H_NAME,HER3.H_NAME FROM
Hersteller AS HER1 RIGHT JOIN
(Arbeitsplatz AS AR1 LEFT JOIN PC ON AR1.ID_PC = PC.ID)
ON HER1.ID = PC.ID_HERST,
Hersteller AS HER2 RIGHT JOIN
(Arbeitsplatz AS AR2 LEFT JOIN Drucker ON AR2.ID_DRUCKER = Drucker.ID)
ON HER2.ID = Drucker.ID_HERST,
HERSTELLER AS HER3 RIGHT JOIN
(Arbeitsplatz AS AR3 LEFT JOIN Telefon ON AR3.ID_TELEFON = Telefon.ID)
ON HER3.ID = Telefon.ID_HERST
;
Dies gibt mir aber logischerweise 8 Zeilen zurück, da er "alles mit allem" verbindet:
Code:
FSC   |HP   |Siemen
Medion|HP   |Siemen
FSC   |Canon|Siemen
Medion|Canon|Siemen
FSC   |HP   |Siemen
Medion|HP   |Siemen
FSC   |Canon|Siemen
Medion|Canon|Siemen
Hey Dennis, Self Join hört sich nicht schlecht an, das werde ich mir sofort anschauen :)
__________________
In der Ruhe liegt die Kraft!
Mit Zitat antworten
  #7  
Alt 16.08.2010, 10:21:32
KTB KTB ist offline
Member
 
Registriert seit: Mar 2006
Alter: 38
Beiträge: 599
AW: Abfrage über fünf Tabellen

Kann es sein, dass mir nur folgende Zeile gefehlt hat?
Code:
WHERE AR1.ID = AR2.ID AND AR2.ID = AR3.ID
Das komplet also so lauten muss:
Code:
SELECT HER1.H_NAME,HER2.H_NAME,HER3.H_NAME FROM
Hersteller AS HER1 RIGHT JOIN
(Arbeitsplatz AS AR1 LEFT JOIN PC ON AR1.ID_PC = PC.ID)
ON HER1.ID = PC.ID_HERST,
Hersteller AS HER2 RIGHT JOIN
(Arbeitsplatz AS AR2 LEFT JOIN Drucker ON AR2.ID_DRUCKER = Drucker.ID)
ON HER2.ID = Drucker.ID_HERST,
HERSTELLER AS HER3 RIGHT JOIN
(Arbeitsplatz AS AR3 LEFT JOIN Telefon ON AR3.ID_TELEFON = Telefon.ID)
ON HER3.ID = Telefon.ID_HERST
WHERE AR1.ID = AR2.ID AND AR2.ID = AR3.ID
;
Das Ergebnis scheint nämlich zu stimmen, oder ist das nur Zufall oder gar viel zu umständlich?
__________________
In der Ruhe liegt die Kraft!
Mit Zitat antworten
Antwort

Stichworte
abfrage, vier tabellen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfrage über Tabellen frank1973 MySQLi/PDO/(MySQL) 5 06.01.2010 08:03:23
Abfrage über 3 gleiche Tabellen Michael_Roelle MySQLi/PDO/(MySQL) 4 28.02.2008 08:42:03
Abfrage nach letztem Datum über mehrere Tabellen delalE MySQLi/PDO/(MySQL) 27 13.06.2007 19:00:40
Abfrage aus zwei Tabellen Skyman MySQLi/PDO/(MySQL) 5 23.05.2006 18:39:53
Abfrage über zwei Tabellen MrLongbaugh MySQLi/PDO/(MySQL) 6 30.08.2005 18:14:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:54:54 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt