ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
538
538
EMPFEHLEN
-
hey leute ich bekomm gleich eine kleine kriese wegen folgendem:
sagen wir ich habe eine tabelle mit from und to(alles andere ist erstmal unwichtig)
die folgenden inhalt hat
from to
1 2
1 2
2 1
2 1
3 1
mit SELECT from, to FROM tabelle GROUP BY from, to
gibt sql mir 3 Werte zurück, ich möchte aber nur 2 werte angezeigt bekommen. sql soll also alle gruppieren die in from oder to eine 1 haben und in from oder to den gleichen wert haben(außer natürlich 1), also als ergebnis 1 2 bzw 2 1 und 3 1.
was soll ich machen? i need your help!
-
02.11.11 16:37 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Ich verstehe nich ganz wie du gruppieren willst aber lösen kannst du es mit einer IF-Anweisung in der Abfrage
Code sql:1
SELECT wert1, wert2, IF(wert1 = 1 OR wert2 = 1, 1,0) AS g FROM tabelle GROUP BY g
Dadurch gibt es mit den obigen Daten nur einen Wert zurück.die in from oder to eine 1Geändert von tombe (02.11.11 um 16:40 Uhr)
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
item: from ist ein gaaaaaanz schlechter Feldname, nur so nebenbei. Weil FROM ist ein SQL-Schlüsselwort. wenn du also dein Feld nicht immer brav in ´ setzt, scheitert dein SQL
item: Annahme: DB ist MySQL
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13
SELECT DISTINCT nr1, nr2 FROM ( SELECT -- nimm den kleineren Wert als ersten ... IF(`to` > `from`, `to`) AS nr1, -- ... und den Grösseren als zweiten Wert IF(`to` < `from`, `to`) AS nr2 FROM myTable ) AS myData
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
hey, erstmal danke. die spalten heißen natürlich nicht from oder to. es bezieht sich auf ein pms system.
spalten heißen eigentlich from_user, to_user und in dem beispiel oben bin ich id =1.
ich möchte halt in einer art posteingang nicht alle nachrichten einzeln gelistet haben, sondern gruppiert.
anderes beispiel: ich bin id=1 denny ist id=2 peter ist id=3 und susi ist id=4. die tabelle sieht jetzt folgendermaßen aus:
id from_user to_user
1 1 3
2 1 3
3 3 1
4 2 1
5 1 2
6 1 4
7 1 4
8 4 1
es sind also ingesamt 8 nachrichten, nach meinem vorhaben sollen aber nur 3 leute dastehen(also mit denen ich schreibe), weil ja 3 konversationen. nach meinem beispiel oben macht er 6 daraus, weil er, wenn to_user und from_user vertauscht stehen, diese als eigenständigen datensatz anzeigt. ich will aber praktisch nr 1-3, 4-5 und 6-8 in diesem beispiel gruppieren.
natürlich gibt es noch jede menge anderer nachrichten und die nachrichten werden nicht in solch einer reinfolge gelistet sein.
wie muss also die sql abfrage aussehen**** wär echt super wenn ihr mir da helfen könntet
-
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
hey yaslaw, die abfrage funktioniert irgendwie nicht
Code sql:1 2 3 4 5 6 7 8 9 10 11 12
$sql = "SELECT DISTINCT from_user, to_user FROM ( SELECT IF(to_user > from_user, to_user) AS from_user, IF(to_user < from_user, to_user) AS to_user FROM tabelle ) AS myData ";
folgender fehler: near ') AS from_user, IF(to_user < from_user, to_user) AS to_user ' at line 7
ich habe leider zuvor noch nie mit if anweisungen gearbeitet und kann ihn daher nicht interpretieren!
mfg aus berlin
-
Es dürfte weniger an dem if als vielmehr an der fehlenden Tabellengabe liegen, sieht jedenfalls für mich so aus. Für meine Begriffe haut aber die gesamte Abfrage nicht hin.
Code sql:1 2 3 4 5 6
SELECT DISTINCT IF( to_user > from_user, to_user, from_user ) AS 'user1', IF( to_user < from_user, to_user, from_user ) AS 'user2' FROM TABELLE WHERE to_user =1 OR from_user =1
Das sollte dir alle User ausgeben, mit denen du geschrieben hast, plus dich. Das Problem ist nur, dass du hiernach nicht unterscheiden könntest, wer davon du bist und wer der andere, weil der andere je nach id entweder in user1 oder user2 steht. Ich hab es so verstanden dass du einfach nur alle deine Gesprächspartner auflisten möchtest.
Code sql:1 2 3 4 5
SELECT DISTINCT IF( to_user !=1, to_user, from_user ) AS 'partner' FROM TABELLE WHERE to_user =1 OR from_user =1
Sorry wenn ich da was missverstanden hab
Für die Übereinstimmung von Niederschrift und Hirninhalt.
-
Hey, habs hinbekommen, das problem lag wirklich daran das ich angeben musste wer ich bin. Zudem kannte ich mich nicht mit if anweisungen aus, im beispiel von yaslaw war keine false anweisung in der if bedingung, deswegen kam immer der fehler. Naja, läuft jetzt
dank euch auf jeden fall für die richtige weg weisung!! Beste grüße
Ähnliche Themen
-
[mySQL 5] Abfrage über mehrere Spalten - Ziel mehrere Spalten
Von Mc_Fly_B im Forum Relationale DatenbanksystemeAntworten: 8Letzter Beitrag: 04.03.10, 13:10 -
MySQL Suche NULL über mehrere Spalten?
Von Dolch im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 29.08.08, 20:34 -
[MSSQL] Ausgabe einer Tabelle mit nvarchar und ntext-Spalten über PHP
Von Ceppi im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 09.01.08, 11:27 -
MYSQL-Abfrage AVG über mehrere Spalten hinweg
Von TomHH im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 04.01.05, 20:49 -
Zusammenlegen von Spalten einer MYSQL-Tabelle
Von HammerHe@rt im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 17.09.02, 10:11





Zitieren



Login





