![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 7.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zastanawiam się w jaki sposób mogę zrobić następującą operację. Mam bazę danych w której przechowuje dane, które mogą być dwóch różnych typów.
Typ|klucz|wartosc a|1|aaa a|2|bbb b|1|aabb b|2|bbaa ............ Chciałbym wyświetlić teraz w jednej tabeli informacje w następujący sposób 1|aaa|aabb 2|bbb|bbaa ............... W jaki sposób powinno wyglądać zapytanie. SELECT * FROM tabela WHERE typ='a' OR typ='b' LIMIT 0,10 chodzi o to, żeby w jednym zapytaniu dostał 10 wyników typu a i typu b |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
To co proponujesz to tak zwana TRANSPOZYCJA - nie wydaje mi się, żeby dało się to zrobić zapytaniem (chyba, że jakiś trigger - jeśli tak, to ja się chętnie dowiem jak). Kiedyś miałem podobny problem - nie da się tego rozwiązać inaczej jak wyświetlić przy pomocy PHP.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 8 Dołączył: 20.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Przykład dla postgresa, przy założeniu, że dla danego klucza nie zawsze jest wartość typu a i nie zawsze b (dlatego full outer join, w przeciwnym wypadku można zastosować np join):
Nie znam mysql, ale tam też to raczej powinno być możliwe. Przy większej ilości typów będzie trochę trudniej, ale nie niemożliwe. PS. Dlaczego ten sql nie jest wyświetlany tak, jak go wpiszę? Tzn, zmienia formatowanie. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 7.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Próbuję coś z tym zrobić ale nadal nic
![]() Tabela wygląda dokładnie tak: data typ pozycja imie nazwisko punkty Ogólnie zapytanie ma zwracać najnowsze dane każdego typu, posortowane według pozycji, ograniczone do 10 najwyższych pozycji w następujący sposób: pozycja typ imie nazwisko punkty, typ imie nazwisko punkty czyli 1 typ-a Jan Kowalski 100, typ-b Jan Nowak 50 ... W zaprezentowanym zapytaniu wszystkie dostępne funkcje są wbudowane w MySqla, ale ciągle nie działa. Przy wykorzystaniu PHP, ale jaka powinna być metodologia ? Generalnie rozwiązałem problem. Wykorzystałem PHP i stworzyłem dwie dodatkowe tablice z tym samym kluczem. Następnie w pętli for wszystko wyświetliłem. Istnieje też możliwość stworzenia tymczasowej tabeli w bazie danych. Pozdr Ten post edytował bobo1 1.11.2008, 16:11:20 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:59 |