SQL - Ich raffs gerade nicht

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
BrahmA
Mitglied
Beiträge: 2283
Registriert: 25.07.2002 13:31
Wohnort: Münsterland

SQL - Ich raffs gerade nicht

Beitrag von BrahmA »

Hallo zusammen,

ich bastel gerade an einem einfachen php-script und krieg gerade die sql-abfrage nicht voreinander.... :(

Tabelle 1:
datum feld1 feld2
1.1.2011 1 3
2.2.2012 2 3

Tabelle 2:
ID Name
1 User1
2 User2
3 User3

Was ich brauchte sind 2 abfragen:

1) eine die mir Tabelle 1 nach Datum sortier ausgibt, dabei aber die Werte in feld1 und feld2 mit den Usernamen aus Tabelle 2 ersetzt
2) eine Abfrage die die User alphabetisch aus Tabelle 2 ausliest und dabei zählt wie oft die ID in Tabelle1.feld1 und Tabelle1.feld2 vorkommt

Das müsste doch beides direkt im SQL in einer Abfrage gehen oder? Quick und dirty mit mehreren Abfragen hab ich das zum Teil schon, aber das ist natürlich unschön ;)

Danke schonmal für die Hilfe
Birne94
Mitglied
Beiträge: 129
Registriert: 22.02.2009 18:57
Kontaktdaten:

Re: SQL - Ich raffs gerade nicht

Beitrag von Birne94 »

1)

Code: Alles auswählen

SELECT datum, u1.name as user1, u2.name as user2 FROM tabelle_a, tabelle_b as u1, tabelle_b as u2 WHERE u1.id=feld1 AND u2.id=feld2 ORDER BY datum;
Ausgehend von der Tabellenstruktur:

Code: Alles auswählen

tabelle_a:
  datum 	text 
  feld1 	int(11) 
  feld2 	int(11) 

tabelle_b:
  id 	int(11) 
  name 	text 
=>

Code: Alles auswählen

Array
(
    [0] => Array
        (
            [datum] => 1.1.11
            [user1] => user1
            [user2] => user3
        )

    [1] => Array
        (
            [datum] => 2.2.11
            [user1] => user2
            [user2] => user3
        )

)
Den zweiten hab ich jetzt auf die Schnelle nicht hinbekommen.

Ja, es lässt sich bestimmt einfacher mit JOINs lösen, aber ich mag es so lieber ;)
Benutzeravatar
BrahmA
Mitglied
Beiträge: 2283
Registriert: 25.07.2002 13:31
Wohnort: Münsterland

Re: SQL - Ich raffs gerade nicht

Beitrag von BrahmA »

Herzlichen Dank, das macht genau das was es soll! Ob mit JOIN oder so ist mir dabei eigentlich sehr egal ;)
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: SQL - Ich raffs gerade nicht

Beitrag von gn#36 »

Join dürfte schneller sein, da obiges Beispiel erst mal alle Kombinationen holt und dann die wegwirft, die nicht passen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Re: SQL - Ich raffs gerade nicht

Beitrag von cYbercOsmOnauT »

Code: Alles auswählen

SELECT datum, u1.name as user1, u2.name as user2 FROM tabelle_a, tabelle_b as u1, tabelle_b as u2 WHERE u1.id=feld1 AND u2.id=feld2 ORDER BY datum;
ergibt

Code: Alles auswählen

SELECT u.datum, u1.name as user1, u2.name as user2
  FROM tabelle_a AS u
  INNER JOIN tabelle_b AS u1 ON u1.id=u.feld1
  INNER JOIN tabelle_b as u2 ON u2.id=u.feld2
  WHERE 1
  ORDER BY u.datum;
Über die Geschwindigkeit kann ich nichts sagen.

Grüße,
Tekin
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Antworten

Zurück zu „Coding & Technik“