Ich habe seit einigen Tagen nach einer Lösung für mein Problem gesucht. Alles, was ich versuche, liefert unerwünschte Ergebnisse.Wie mehrere Zeilen zu vergleichen, die Duplikate in allen Spalten außer einer haben, und die andere Spalte anzuzeigen, in SQL
Im Grunde versuche ich, Zeilen aus der gleichen Tabelle zu vergleichen. Lassen Sie uns sagen, dass dies die Tabelle in Frage:
name | hobby
------+------------
Bill | fishing <- 1
Bill | basketball <- 2
Bill | tennis <- 3
Peter | soccer
Peter | baseball
Joe | tennis <- 3
Joe | basketball <- 2
Peter | fishing
Dave | tennis
Joe | fishing <- 1
Dave | fishing
Dave | basketball
Dave | football
Was ich möchte, dass meine Abfrage Rückkehr haben, ist eine Tabelle, die die Namen von zwei Personen zeigt, die genau die gleichen Hobbys, und die Menge an Hobbys sie haben in verbreitet. Es darf den gleichen Namen nicht zweimal in einer Zeile anzeigen. Wenn wir die Abfrage auf diese Tabelle auszuführen, würde das Ergebnis sein:
name1 | name2 | nr_of_hobbies
--------+-----------+----------------
Bill | Joe | 3
Joe | Bill | 3
Ich habe versucht, alle Arten von Anfragen, schließt sich mit, Unterabfragen, eine Mischung davon, aber ich habe einfach nicht in der Lage gewesen, traf den Nagel auf den Kopf. Mir fällt es besonders schwer, herauszufinden, wie man mehrere Elemente einer Spalte vergleicht, wobei Elemente aus anderen Spalten gleich sind. Jede Hilfe würden wir sehr schätzen. Danke im Voraus!
Danke Giorgos. Das war genau die Antwort, nach der ich gesucht habe! –
@ 7z. . . . Ich verstehe nicht, wie dies die Antwort ist, nach der Sie suchen. Ihre angegebene Antwort hat drei Spalten - zum Beispiel - und dies hat vier. –
@GordonLinoff Ja, das ist richtig, aber das ist nicht der Kern dessen, was ich tun wollte. Ich wollte vor allem verstehen, wie man in einer Spalte nach mehreren Werten sucht, für die Werte in einer anderen Spalte gleich sind. Ihre Antwort war ebenfalls hilfreich, aber ich selbst hatte noch nie zuvor von Group_Concat gehört oder gehört. Es war insofern hilfreich, weil Sie meinen Horizont dahingehend erweitert haben, was ich mit SQL erreichen kann, aber es hat die Dinge nicht so intuitiv gemacht, wie Giorgos 'Antwort es getan hat. Daher wählte ich seine Antwort. –