![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 28.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
w tabeli A mam unikalne id dla każdego wiersza tabela B jest powiązana z tabelą A za pomoca tego samego id, z tą różnicą, że więcej niż jeden wiersz może być przypisany do wiersza z tabeli A (czyli w tabeli B może być kilka wierszy z tym samym numerem id_A). Problem polega na tym, że ilość wyników to suma wszystkich wierszy z tabeli B Jeśli zastosuję GROUP BY uzyskuję oczekiwaną ilość wyników, ale wtedy nie dostaję wszystkich wierszy z tabeli B powiązanych z tabelą A. tabela_A id_A value_A 1 a 2 b 3 c tabela_B id_A value_B 1 d 1 e 2 f 2 g 3 h 3 i 3 j Mój kod:
Pożądany wynik: 1-a-d, e 2-b-f, g 3-c-h, i, j Obecny wynik: 1-a-d 1-a-e 2-b-f 2-b-g 3-c-h 3-c-i 3-c-j Bardzo proszę o pomoc. Pozdrawiam Ten post edytował ketna 4.12.2006, 17:26:49 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 28.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Nie wiem czy dokladnie rozumiem o co Ci chodzi Masz dwie tabele: tabela_A z id_A z trzema wierszami i tabela_B z 7 wierszami Pierwsze pytanie dlaczego tabela B nie ma wladnego klucza. korzystajac z Twojego oznaczania powinno sie tam znajdowac id_B, a dopiero kolejne id_A Jak rozumiem masz relacje jeden-do-wielu miedzy tymi tabelami. Aby polaczyc dwie tabele musisz w zapytaniu wykazac wszystkie polaczenia czyli:
oczywiscie informatycy maja jakies skroty do tych zapytan musisz to sobie sam poszukac Nastepnie mozesz ale nie musisz przed selectem stworzyc zmienna $wynik na zasadzie
Zapewne jakos nazwales wiersze tabeli B. Zatem najlatwiej zrobic wynik dla kazdego wiersza osobno.
. . . etc.
etc. I nastepnie echo lub print owych wynikow. Pewnie mozna to zrobic za pomoca funkcji, ale poki co to na razie wybiega poza zakres mojej wiedzy Z powazaniem zicher |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 28.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam wrażenie, że to nie za bardzo na temat.
Ujmę to inaczej - jeden produkt może mieć przypisanych kilka atrybutów. Z pętli dostaję wszystkie produkty, ale potrzebuję wewnątrz tej pętli dodać drugą pętlę, żeby wyciągnąć atrybuty danego produktu (chyba, że można to osiągnąć inaczej). a więc przykładowe wyniki wyglądałyby tak: 237 produkt_abc atrybut1 atrybut2 239 produkt_xyz atrybut1 atrybut2 atrybut3 240 produkt_xxl atrybut1 i teraz pytanie jak to zrobić. P.S. oczywiście, że tabela_B ma swoje unikalne id, ale nie było ono potrzebne w tym przykładzie. Ten post edytował ketna 4.12.2006, 18:55:56 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:28 |