![]() |
![]() ![]() |
![]() |
![]()
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: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 25.02.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy pomoże ale:
albo
Polecam ten drugi przykład, który pokazuje 5 rekordów posortowanych od największego do najmniejszego. -------------------- ...::: R @ F I & S @ L I :::...
PrivateServ |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat Chodzi o by w możliwie optymalnym zapytaniu zwrócić wszystkie elementy o najnowszych wersjach, np. Musisz date wstawic bo skad bedziesz wiedzial ktory jest nowszy, zadnego id nie masz ani daty to jak chesz sortowac? -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 13.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(SongoQ @ 2005-06-07 07:12:23) Musisz date wstawic bo skad bedziesz wiedzial ktory jest nowszy, zadnego id nie masz ani daty to jak chesz sortowac? Najnowszy jest ten z największym numerem wersji, oczywiście. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Czyli co nie masz nigdzie klucza podstawowego?
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 13.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście, ze mam i mam jeszcze z 15 pól w tej tabeli, ale przedstawiłem tylko to co najważniejsze, poza tym id nie jest IMO w tym przypadku istotne. A kolumna "klucz" w tym przykładzie to akurat klucz obcy.
Prościej nie potrafię ![]() |
|
|
![]()
Post
#7
|
|
![]() 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:
-------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 13.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki,
będę próbował, przecież nie ma rzeczy niemożliwych (chyba ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 07:28 |