Zdravím, měl bych dotaz pro nějaké chytré hlavy, které se vyznají trochu více v databázích
Mám v mysql automaticky generovanou rozsáhlou tabulku ktera vypada nějak takhle:
Jmeno | Relace
---------------------------
honza 1
petr 1
franta 1
honza 2
franta 2
alice 2
petr 3
alice 3
kamil 3
s tím, že počet lidí v relaci může být 2-7. No a potřeboval bych ji nějak vyexportovat do čehokoli ( txt, excel) ve formátu že lidi, kteří jsou spolu v relaci, budou vypsáni každý s každým z té relace na jednom řádku. ( na pořadí nezáleží)
priklad: (txt)
honza + petr
honza + franta
petr + franta (tihle byli z 1. relace)
honza + franta
honza + alice
franta + alice (tihle byli z 2. relace)
petr + alice
petr + kamil
alice + kamil ( z 3. relace)
Předem díky, budu vděčný za jakékoli řešení nebo nakopnutí
Fórum › MySQL
Export databaze do souboru
To netman92 : POkusim se to vysvetlit. v tabulce jsou ulozeni lide kteri spolu byli v nejakem tymu ( jeden tym je jedna relace) . A potrebuju to ulozit v takovem tvaru, ze pujde videt kdo vsechno s kym se potkali ve stejnem tymu. Poskladat takovou "sit" kde lide budou vrcholy a to ze byli spolu clenove stejneho tymu je hrana ( jeden radek vysledneho souboru)
Doufam ze je to ted srozumitelnejsi :)
To Horin :
z takehoto vstupu:
honza 1
petr 1
franta 1
chceš dostať toto:
honza petr
honza franta
petr franta
alebo toto:
honza petr
honza franta
petr hoza
petr franta
franta hoza
franta petr
alebo toto:
honza honza
honza petr
honza franta
petr honza
petr petr
petr franta
franta honza
honza petr
honza honza
Ak to ma byť ten prvý výstup, podľa čoho sa má rozhodnúť, poradie vypisania? alebo na poradi nezaleži ?
Chceš to vyriešiť jedným sql selectom, alebo to môžeš riešiť napríklad ako netman92 napísal, pomocou php, resp. iným jazykom... ?
Toto vytvori posledny typ vystupu (každý s každým -- aj samým sebou):
SELECT DISTINCT t1.meno, t2.meno
FROM tabulka as t1 INNER JOIN tabulka as t2
ON (t1.relace = t2.relace);
Ak nechces aby osoba bola zobrazena sama so sebou, tak:
SELECT DISTINCT t1.meno, t2.meno
FROM tabulka as t1 INNER JOIN tabulka as t2
ON (t1.relace = t2.relace AND t1.meno != t2.meno);
Toto vytvori prvy typ vystupu, pričom poradie bude určené abecedne:
SELECT DISTINCT t1.meno, t2.meno
FROM tabulka as t1 INNER JOIN tabulka as t2
ON (t1.relace = t2.relace AND t1.meno<t2.meno);
To Prog. : jedna se o prvni pripad, a ta posledni varianta dotazu dela presne co potrebuju, diky moc ! :)
To netman92 : praveze bohuzel moc ne, potrebuju hlavne dostat ty data z databaze
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
MSSQL BCP export z tabulky DataBaze do souboru csv — založil Palmuk
Export databaze — založil utajeny007
Export databáze do excelu — založil Petr
Export databáze MYSQL — založil p4nther
Export do txt souboru — založil matouch
Moderátoři diskuze