Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] tabela z dwoma typami danych
bobo1
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
michalg
post
Post #2





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):

  1. SELECT COALESCE(typ_a.klucz, typ_b.klucz) AS klucz, typ_a.wartosc, typ_b.wartosc
  2.  
  3. FROM ( SELECT klucz, wartosc FROM tab WHERE typ = 'a'
  4. ) AS typ_a
  5.  
  6. FULL OUTER JOIN ( SELECT klucz, wartosc FROM tab WHERE typ = 'b'
  7. ) AS typ_b ON typ_a.klucz=typ_b.klucz;


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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 19:50