![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 13.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam tabelę o strukturze: Kod wersja | x | y | klucz 1 | a | a | 111 1 | b | b | 222 2 | c | c | 111 2 | d | d | 222 3 | e | e | 111 w bazie przechowywane są pary wartości (x i y) dla odpowiednich elementów identyfikowanych przez kolumnę klucz. Wartości te mogą się jednak zmieniać co obrazuje kolumna wersja np. element o kluczu 111 ma trzy wersje (1,2 i 3). Chodzi o by w możliwie optymalnym zapytaniu zwrócić wszystkie elementy o najnowszych wersjach, np. Kod wersja | x | y | klucz 2 | d | d | 222 3 | e | e | 111 Czy da się coś takiego wykonać jednym zapytaniem? Bez obrabiania wyniku w php? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Niestety - jest to problem bardzo trudny do rozwiązania w MySQL, przynajmniej w wersjach nie obsługujących subzapytań, i gdy nie chcemy wykorzystywać tabel tymczasowych.
Tak naprawdę jest to bowiem problem źle zaprojektowanej struktury - dane te powinny być przechowywane w kilku tabelach. Ale jest to problem ... możliwy do rozwiązania. Więcej na ten temat: http://dev.mysql.com/doc/mysql/en/example-...-group-row.html W tym przypadku mogłoby to wyglądać tak:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 1.10.2025 - 13:48 |