MySQL Select Doppelte Werte vermeiden?

... komplette Frage anzeigen

3 Antworten

Da könnte dir ein Union-Select bei helfen. 

z.B.:

SELECT msg_von_user_id As UserID
FROM Nachrichten
WHERE msg_an_user_id = DeineUserID
GROUP BY msg_von_user_id
UNION ALL
SELECT msg_an_user_id As UserID
FROM Nachrichten
WHERE msg_von_user_id = DeineUserID
GROUP BY msg_an_user_id
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von PG001
14.12.2015, 19:03

Danke für deine Antwort.

Ich bekomme es irgendwie nicht hin die Ergebnisse per echo in einer while auszugeben, ist das bei dieser Abfrage anders als normal?

0
Kommentar von PG001
14.12.2015, 19:09

Meine Ausgabe ist wie folgt:

$ergebniskunde=mysql_query($sqlkunde,$verbindung) or die(mysql_error());

while ($row = mysql_fetch_object($ergebniskunde))
{
$nachrichten_von_user_id = $row->msg_von_user_id;
$nachrichten_an_user_id = $row->msg_an_user_id;



echo "<div><img src=\"gallery/profilbilder/$nachrichten_an_user_id.jpg\" width=\"30px\" height=\"30px\"  /></div>";}

Bekomme aber keine Werte ausgelesen, was bedeutet dieses AS user_id? Muss ich darauf zugreifen?

0
Kommentar von PG001
14.12.2015, 19:45

Ja habe es gerade auch gesehen dass noch doppelte Werte vorkommen können, da die zwei Spalten nicht gefiltert werden.

Ja wunderbar! :-)
Habs! du hast mir echt geholfen. Ich danke dir!

0

Versuch es mit group by:

select msg_von_user_id, msg_an_user_id from Nachrichten where ... group by 1, 2
Antwort bewerten Vielen Dank für Deine Bewertung

Distinct über zwei Spalten? Ich kenn es nur so, dass man allgemein Distinct schreiben kann, wodurch in der Ausgabe keine doppelten Datensätze auftauchen. Also:

SELECT DISTINCT msg_von_user_id, msg_an_user_id FROM Nachrichten
WHERE msg_von_user_id = 'PG001' OR msg_an_user_id = 'PG001'

Alternativ kannst du auch Group By benutzen.

SELECT msg_von_user_id, msg_an_user_id FROM Nachrichten
WHERE msg_von_user_id = 'PG001' OR msg_an_user_id = 'PG001'
GROUP BY msg_von_user_id, msg_an_user_id

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von PG001
14.12.2015, 18:14

Danke für deine Antwort.

Ich glaube das geht soweit mit distinct, hätte dann glaube ich aber ein Problem wenn msg_von_user_id gleich msg_an_user_id ist, dann würde ich 2 Ergebnisse bekommen
Das ist möglich da es zwei User Bereiche gibt, einmal Kunden und Anbieter.

Mh, es gibt noch eine Tabelle wo alle User eine unterschiedliche id haben, auf die Tabelle zuzugreifen würde ich aber gerne umgehen.

0

Was möchtest Du wissen?