A więc: mam tabelę w MySQL, zawierającą 30,000 rekordów. Załóżmy, że tabela `polaczenia` wygląda tak:
Kod
id | lokacja1_id | lokacja2_id | inne pola....
a tabela `lokacja`, wygląda tak:Kod
id | nazwa | opis
Potrzebuję wybrać z tabeli `polaczenia` wszystkie możliwe połączenia (więc lokacja1 -> lokacja2 oraz lokacja2 > lokacja1) posortowane alfabetycznie według nazwy tych lokacji.
I teraz pytanie jak to osiągnąć?
Od razu narzuciło mi się: skopiowanie wszystkich rekordów, zamieniając wyłącznie miejscami pola z ID lokacji, a do tego ustawić crona, który będzie co jakiś czas wywalał wszystkie sklonowane rekordy i wstawiał je na nowo. Jednak w tabeli połączeń jest dużo innych pól ze szczegółami połączania, pasujących do obu wariacji. Tak więc nie ma sensu kopiować tych danych (a tym bardziej wprowadzać manualnie obu wersji do bazy). No i jest kwestia ID, przy takim rozwiązaniu ich pula się bardzo szybko wykończy przy int(11). To rozwiązanie bardzo bardzo mi się nie podoba, ale na razie nie wymyśliłem nic lepszego

A może za bardzo kombinuję i istnieje magiczne zapytanie sql, które mi z tym pomoże?

Pomóżcie mi proszę, każdy pomysł będzie przydatny.