Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.06.2007 Ostrzeżenie: (0%)
|
Witam
Czy ktos moglby mi podpowiedziec jak skonstruowac zapytanie SELECT i czy jest to mozliwe aby otrzymac dynamiczne kolumny? Posluze sie przykladem: Mamy Tabice pierwsza: identyfikator, oraz kto wysyla i kto odbiera. Tablica_1 ID sender receiver 1 A A 2 A B 3 A C 4 B B 5 B C 6 C A Tablica 2 posiada klucz obcy odwolujacy sie do tablicy pierwszej oraz kod bledu i ilosc wystapien. Problem jest ze nieznana jest liczba mozliwych kodow bledu oraz mozliwosc wystapienia kilku bledow dla jednego wiersza z Tabeli 1. Tak jak w przykladzie dla B B wystapilo 5 bledow o kodzie 403 i 2 bledy 302. Tablica_2 ID error_code count 4 403 5 4 302 2 6 403 1 Wyniki chcialbym uzyskac w takiej postaci: ID sender receiver 403 302 1 A A 0 0 2 A B 0 0 3 A C 0 0 4 B B 5 2 5 B C 0 0 6 C A 1 0 Z gory dziekuje za pomoc. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 1 Dołączył: 6.02.2006 Ostrzeżenie: (0%)
|
Można wykonać zapytanie z grupowaniem również wg kodu błędu:
Ale wtedy wyniki dostaniesz w tym formacie, co nie chciałeś mieć na początku. Kolejny sposób, to wykonanie jednego zapytania o kody błędów, które znajdują się w tablicy 'tablica2':
i zbudowanie zapytania z zastosowaniem wyników, które otrzymasz z powyższego zapytania. Coś w stylu: Kod $result = mysql_query('SELECT DISTINCT error_code FROM tablica2');
if ($result) { $sql_select = ''; $sql_join = ''; $i = 2; while($row = mysql_fetch_assoc($result)) { $sql_select .= ",COUNT(t$i.id) AS error" . $row['error_code']; $sql_join .= " LEFT JOIN tablica2 AS t$i ON (t$i.id=t1.id AND t$i.error_code=' . $row['error_code'] . ')'; ++$i; } if ($sql_join) { $sql = "SELECT t1.id,sender,receiver$sql_select FROM tablica1 AS t1$sql_join"; // wykonanie zapytania i odczytanie wyników } } Ten post edytował Norbas 21.06.2007, 19:27:49 |
|
|
|
kepas Dynamiczne kolumny w mysql 20.06.2007, 18:31:17
Norbas Należy zastosować funkcję COUNT i złączenie LEFT J... 20.06.2007, 20:26:00
kepas Robilem left join da wynik:
1 A A
2 A B
3 A C
4 B... 20.06.2007, 21:45:37
Norbas [SQL] pobierz, plaintext SELECT t1.id,sender,recei... 20.06.2007, 22:42:22
kepas To rozwiazanie bardzo mi pomaga.
Jedyny problem ja... 21.06.2007, 08:15:32
kepas Dokladnie tak zrobilem
Dzieki wielkie za pomoc 22.06.2007, 09:44:47 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 14:53 |