potrzebuję pomocy, muszę z jednej tabeli wybrać wszytskie osoby i połączyć je w pary tak aby nie było powtórzeń, póki co udało mi się sparować ale nie daje rady wybrać bez powtórzeń tych samych par
select o1.id, o1.imie, o1.nazwisko, o2.id, o2.imie, o2.nazwisko from osoby o1 join osoby o2 where o1.id != o2.id
2 Ola Nowak 1 Jan Kowalski
3 Ewa Zdisanska 1 Jan Kowalski
4 Ela Oglowska 1 Jan Kowalski
1 Jan Kowalski 2 Ola Nowak
3 Ewa Zdisanska 2 Ola Nowak
4 Ela Oglowska 2 Ola Nowak
1 Jan Kowalski 3 Ewa Zdisanska
2 Ola Nowak 3 Ewa Zdisanska
4 Ela Oglowska 3 Ewa Zdisanska
1 Jan Kowalski 4 Ela Oglowska
2 Ola Nowak 4 Ela Oglowska
3 Ewa Zdisanska 4 Ela Oglowska
SELECT IF(o1.id_osoba>o2.id_osoba,o2.id_osoba,o1.id_osoba) AS o1_id_osoba, IF(o1.id_osoba>o2.id_osoba,o2.imie,o1.imie) AS o1_imie, IF(o1.id_osoba>o2.id_osoba,o2.nazwisko,o1.nazwisko) AS o1_nazwisko, IF(o1.id_osoba>o2.id_osoba,o1.id_osoba,o2.id_osoba) AS o2_id_osoba, IF(o1.id_osoba>o2.id_osoba,o1.imie,o2.imie) AS o2_imie, IF(o1.id_osoba>o2.id_osoba,o1.nazwisko,o2.nazwisko) AS o2_nazwisko FROM osoba AS o1 CROSS JOIN osoba AS o2 WHERE o1.id_osoba<>o2.id_osoba GROUP BY o1_id_osoba, o1_imie, o1_nazwisko, o2_id_osoba, o2_imie, o2_nazwisko
SELECT o1.id_osoba,o1.imie,o1.nazwisko,o2.id_osoba,o2.imie,o2.nazwisko FROM osoba AS o1 INNER JOIN osoba AS o2 ON o2.id_osoba>o1.id_osoba
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)