SQL - distinct
Zdravím...
mám tabulku 'klienti' s cca 30 sloupci.
Někteří klienti jsou zde několikrát, ale to má své důvody.
Stejné klienty chci poznat posle duplicitního sloupce telefon.
Jak mám vypsat všechny sloupce a všechny klienty tak, aby je jedno telefonní číslo neopakovalo?
Zkoušel jsem funkci distinct, ale nepovedlo se mi vypsat všechny sloupce, ale jen sloupec telefon.
To máš akože pre jedného klienta riadky, ktoré majú vo všetkých stĺpcoch rovnaké hodnoty? Ak áno, tak to nedáva zmysel. Zaujímali by ma tie dôvody (stačí jeden) mať viacero rôznych záznamov pre jedného klienta.
Ak nemáš vo všetkých stĺpcoch rovnaké hodnoty, tak čo chceš vlastne vypísať pre dvoch rôznych klientov s rovnakým telefónnym číslom?
Spájať klientov len na základe rovnakého telefónneho čísla nie je vôbec spoľahlivé.
je to 1:n, ale v jedné tabulce... převzal jsem jeden systém a ten je úplně špatně, ale překopávat ho nechci...
dejme tomu mám
a chci, aby se mi vypsal každého klienta jen jednou, ale s posledním popisem.
Napríklad:
Edit: Spojil som to podľa klient_id a nie podľa telefon, takže ak to chceš spájať naozaj podľa telefónu, tak si to uprav.
paráda, přesně toto jsem potřeboval... díky moc...
Zatím jsem příliš nepřemýšlel nad tím, co píše výše los.
Pokud jde o výpis jen unikátních telefonů a příslušných záznamů k nim v MySQL:
ano, toto je možnost, ale GROUP BY mi nějak ignoroval ORDER BY
Protože klíčová slova mají předepsané pořadí, které je potřeba dodržet:
SELECT $<$seznam_výstupních_sloupců$>$
FROM $<$seznam_tabulek$>$
[WHERE $<$podmínka_řádku$>$]
[GROUP BY $<$seznam_výrazů_seskupení$>$]
[HAVING $<$podmínka_skupiny$>$]
[ORDER BY $<$seznam_kritérií_třídění$>$]
Order by je tedy na konci.
Ano to chápu, proto GROUP BY nemůžu použít, že?
Muzes pouzit Group by
Ne protože mi to vybere první záznam s klientem a já potřebuju poslední záznam.