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 31-03-2013, 00:57
Wasser_Wanderer
 Registrierter Benutzer
Links : Onlinestatus : Wasser_Wanderer ist offline
Registriert seit: Aug 2011
Beiträge: 225
Wasser_Wanderer befindet sich auf einem aufstrebenden Ast
Standard Spalten Gruppieren aus einer Tabelle

Tut mir leid euch wieder zu bemühen.
Ich hab folgende Datensätze:

Daten in der Tabelle ergebnisse:
sp_id / team_a / team_b / erg_1 /erg_2 / spieltag
1 / Karl / Nette / 3 / 0 / 2013-03-19 15:00:00
2 / Micha / Nette / 2 / 0 / 2013-03-20 00:00:00
3 / Micha / Karl / 3 / 0 / 2013-03-21 00:00:00
4 / Nette / Peter / (NULL) / (NULL) / 0000-00-00 00:00:00

Nun möchte ich gerne folgendes Ergebnis (ORDER BY kenn ich):
Zu jedem Namen seine Spielpaarung. ZB:

sp_id/Spieler/Gegner/erg_1/erg_2/ spieltag
1 / Karl / Nette / 3 / 0 / 2013-03-19 15:00:00
3 / Karl / Micha / 0 / 3 / 2013-03-21 00:00:00
3 / Micha / Karl / 0 / 3 / 2013-03-21 00:00:00
2 / Micha / Nette / 2 / 0 / 2013-03-20 00:00:00
(usw)

Mir geht es nur um die DB-Abfrage. Die Ausgabe mit den - und : mache ich in der Präsentationsschicht (Dank an hll3)

Mir ist bewusst das es für euch Profis leicht ist, aber ich beginne erst mit MYSQL und meine Versuche mit zB DISTINCT liefen ins Leere.

Geändert von Wasser_Wanderer (31-03-2013 um 21:02 Uhr) Grund: Soll Ergebnis geändert ( / als Spaltentrenner )
Mit Zitat antworten
  #2 (permalink)  
Alt 31-03-2013, 20:20
Guenni61
 Registrierter Benutzer
Links : Onlinestatus : Guenni61 ist offline
Registriert seit: Nov 2011
Ort: Viersen
Beiträge: 128
Guenni61 befindet sich auf einem aufstrebenden Ast
Standard

Hi Wasser_Wanderer,

vielleicht mit concat?

Code:
select sp_id, concat(team_a , ' - ', team_b) as Teams, concat(erg_1, ' : ', erg_2) as Ergebnis, spieltag from . . .
Gruß
Günni
Mit Zitat antworten
  #3 (permalink)  
Alt 31-03-2013, 20:57
Wasser_Wanderer
 Registrierter Benutzer
Links : Onlinestatus : Wasser_Wanderer ist offline
Registriert seit: Aug 2011
Beiträge: 225
Wasser_Wanderer befindet sich auf einem aufstrebenden Ast
Standard

Hallo Guenni und vielen Dank für deine Antwort:

Zitat:
Zitat von Guenni61 Beitrag anzeigen
Hi Wasser_Wanderer,

vielleicht mit concat?

Code:
select sp_id, concat(team_a , ' - ', team_b) as Teams, concat(erg_1, ' : ', erg_2) as Ergebnis, spieltag from . . .
Gruß
Günni
Leider bekomme ich nicht das gewünsche Ergebnis.
Sondern:
sp_id / Teams / Ergebnis / spieltag
1 Karl - Nette / 3 : 0 / 2013-03-19 15:00:00
2 Micha - Nette / 2 : 3 / 2013-03-20 00:00:00
3 Micha - Karl / 3 : 0 / 2013-03-21 00:00:00
4 Nette - Peter / (leer) : (leer) / 0000-00-00 00:00:00
5 I<Tess>I - Karl / (leer) : (leer) / 0000-00-00 00:00:00
6 Nette - Micha / (leer) : (leer) / (leer)
7 Willi - Nette / (leer) : (leer) / (leer)

Bitte stört euch nicht an dem (leer). Das ist nebensächlich.
Mit Zitat antworten
  #4 (permalink)  
Alt 31-03-2013, 21:27
Guenni61
 Registrierter Benutzer
Links : Onlinestatus : Guenni61 ist offline
Registriert seit: Nov 2011
Ort: Viersen
Beiträge: 128
Guenni61 befindet sich auf einem aufstrebenden Ast
Standard

Hi Wasser_Wanderer,

was stimmt denn im Ergebnis nicht? Ich hab' mir keine Tabelle mit deinen Daten angelegt,

sondern einfach eine vorhandene genommen, und vielleicht deshalb den Fehler nicht bemerkt.

Gruß
Günni
Mit Zitat antworten
  #5 (permalink)  
Alt 31-03-2013, 21:50
Wasser_Wanderer
 Registrierter Benutzer
Links : Onlinestatus : Wasser_Wanderer ist offline
Registriert seit: Aug 2011
Beiträge: 225
Wasser_Wanderer befindet sich auf einem aufstrebenden Ast
Standard

Hallöchen Günni,
als Ergebnis möchte ich:

Zu jedem Namen seine Spielpaarung. ZB:

sp_id / Spieler / Gegner / erg_1/ erg_2 / spieltag
1 / Karl / Nette / 3 / 0 / 2013-03-19 15:00:00
3 / Karl / Micha / 0 / 3 / 2013-03-21 00:00:00
3 / Micha / Karl / 0 / 3 / 2013-03-21 00:00:00
2 / Micha / Nette / 2 / 0 / 2013-03-20 00:00:00
(usw)

ORDER BY: Spieler

Ich denke das müsste mit einem SUB-SELCT gemacht werden, aber da bin ich mir echt nicht sicher.
Ich google schon seit 5 Tagen nach: mysql group by 2 Spalten (und noch andere Varianten ) ;(
Mit Zitat antworten
  #6 (permalink)  
Alt 01-04-2013, 11:43
Guenni61
 Registrierter Benutzer
Links : Onlinestatus : Guenni61 ist offline
Registriert seit: Nov 2011
Ort: Viersen
Beiträge: 128
Guenni61 befindet sich auf einem aufstrebenden Ast
Standard

Hi Wasser_Wanderer,

jetzt verstehe ich, was du meinst (Glaub' ich zumindest). Das würde bedeuten das aus . . .

karl/berta/3/2
micha/anton/1/3

. . . folgendes wird . . .
anton/micha/3/1
berta/karl/2/3

. . . so wie im Eingangspost beschrieben. Dann müssen aber auch die Ergebnisse "gedreht" werden, so dass sie zu den sortierten Paarungen passen.

Mein Vorschlag:

- Eine Tabelle mit den Teams(oder Spielern)
id/team(spieler)

- Eine weitere Tabelle mit den Paarungen
id/team1_id/team2_id/p1/p2

team1_id, team2_id bekommen jeweils eine id aus der Tabelle team. p1/p2 sind die Ergebnisse.

Folgender select . . .
PHP-Code:
SELECT ergebnisse.idt1.teamt2.teamp1p2 from teams t1teams t2ergebnisse 
where t1
.id=ergebnisse.team1_id and t2.id=ergebnisse.team2_id order by t1.team 
. . . liefert dann (hoffentlich) das gewünschte Ergebnis.

Gruß
Günni
Mit Zitat antworten
  #7 (permalink)  
Alt 01-04-2013, 15:18
Wasser_Wanderer
 Registrierter Benutzer
Links : Onlinestatus : Wasser_Wanderer ist offline
Registriert seit: Aug 2011
Beiträge: 225
Wasser_Wanderer befindet sich auf einem aufstrebenden Ast
Standard

Hallo Günni. Danke das du dich reinhängst.

Leider liefert dein letzter Vorschlag auch nicht das gewünschte Ergebnis.

Ich habe (so wie von dir vorgeschlagen) 2 Tabellen angelegt:

Tabelle: teams
id/team
1/Karl
2/Willi
3/Micha
4/Hans

Tabelle: spiele
id/team1_id/team2_id/p1/p2
1 / 1 / 2 / 2 / 0
2 / 2 / 3 / 2 / 1
3 / 1 / 3 / 2 / 0
4 / 4 / 3 / 1 / 2

Deine Abfrage ergibt:
id/team/team/p1/p2

4/Hans/Micha/1/2
1/Karl/Willi/2/0
3/Karl/Micha/2/0
2/Willi/Micha/2/1

Das Ergebnis soll aber sein:
spiel_id/team/team/p1/p2

4/Hans/Micha/1/2

1/Karl/Willi/2/0
3/Karl/Micha/2/0

4/Micha/Hans/2/1
3/Micha/Karl/0/2
2/Micha/Willi/1/2

2/Willi/Micha/2/1

Also erst: Alle Paarungen von Hans (es gab nur eine)
Dann: Alle Paarungen von Karl (es gab zwei)
Dann: Alle Paarungen von Micha (es gab drei)
Dann: Alle Paarungen von Willi (es gab nur eine)

Sorry wenn ich das Anfangs schlecht beschrieben hatte.
Mit Zitat antworten
  #8 (permalink)  
Alt 03-04-2013, 02:16
Wasser_Wanderer
 Registrierter Benutzer
Links : Onlinestatus : Wasser_Wanderer ist offline
Registriert seit: Aug 2011
Beiträge: 225
Wasser_Wanderer befindet sich auf einem aufstrebenden Ast
Standard Habs hin bekommen :)

Das Ergbniss sollte sein:
team / gegner / tore / gegentore / tordiff / datum
Karl / Micha / 0 / 3 / -3 / 2013-03-21 00:00:00
Karl / Nette / 3 / 0 / 3 / 2013-03-19 15:00:00
Micha / Nette
Micha / Nette / 2 / 3 / -1 / 2013-03-20 00:00:00
Micha / Karl / 3 / 0 / 3 / 2013-03-21 00:00:00
Nette / Peter
Nette / Willi
Nette / Micha
Nette / Karl / 0 / 3 / -3 / 2013-03-19 15:00:00
Nette / Micha / 3 / 2 / 1 / 2013-03-20 00:00:00
Peter / Nette
Willi / Nette

Mit:
PHP-Code:
SELECT 
team_a 
AS team,team_b AS gegner
erg_1 AS tore
erg_2 AS gegentore
erg_1 erg_2 AS tordiff
spieltag AS datum 
FROM 
ergebnisse 
UNION ALL 
SELECT 
team_b 
AS team
team_a AS gegner
erg_2 AS tore
erg_1 AS gegentore
erg_2 erg_1 AS tordiff
spieltag AS datum 
FROM 
ergebnisse     
ORDER BY 
team ASC
,tore ASCdatum ASC 
Das ich da erstmal keine Tabelle team gebaut habe, erkläre ich nur mit dem Begriff: schnell was basteln

Tabelle team kommt noch mit den id,s dazu. Ich wollte nur die Einzelergebnisse haben.

Und das ist mir alter Sack auch endlich gelungen
Mit Zitat antworten
Antwort

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[SQL allgemein] JOIN von 2 Spalten der einen mit einer Spalte einer anderen Tabelle Sebinho SQL / Datenbanken 2 08-12-2006 17:40
Einträge in 2 spalten einer Tabelle launebaer PHP Developer Forum 1 31-08-2006 18:55
Tabellen-Spalten einer SQL Tabelle... uschi SQL / Datenbanken 6 12-01-2006 20:47
in einer Tabelle spalten kopieren heinzoor SQL / Datenbanken 6 09-12-2005 18:28
ausgabe in einer Tabelle mit 2 Spalten DanLoop PHP Developer Forum 3 10-09-2003 15:13

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 15:41 Uhr.