![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 28.11.2008 Skąd: Będzin Ostrzeżenie: (10%) ![]() ![]() |
Witam użyszkodników
![]() Mam mały problem ze stworzeniem zapytania które wyciągnie potrzebne mi dane z kilkunastu tabel. Z zapytaniem męczę się już dość długo wertując google, niestety sam nie potrafię rozwiązać problemu., dlatego liczę na waszą pomoc... Moje tabele to:
Tabelka identyfikatory zawiera unikalny identyfikator (pole o nazwie identyfikator). Tabela dokumenty_pdf zawiera nazwy dokumentów pdf oraz id_dokumentu do którego dany plik pdf należy. (pola to id_dokumentu, nazwa_pdf). Pozostałe tabelki choć trochę różnią się konstrukcjami posiadają wspólne pola takie jak: identyfikator, kod, nadawca i adres. Oczywiście elementem łączącym ma być sam identyfikator. Moim problemem jest wyciągniecie tych danych. Próbowałem już chyba wszystkich sposobów. Teraz jestem na etapie takiego zapytania (które coś zwraca w przeciwieństwie do innych):
Mam nadzieję że udało mi się wszystko dobrze opisać. Z góry dziękuje za pomoc. Ten post edytował bagsiur 12.01.2011, 14:10:07 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 26.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Możesz napisać co ci zwraca to zapytanie ? I jakiego wyniku oczekujesz w porównaniu do tego co ci zwraca ?
Ten post edytował casI@ 12.01.2011, 12:21:19 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 28.11.2008 Skąd: Będzin Ostrzeżenie: (10%) ![]() ![]() |
Chodzi mi wyciągnięcie identyfikatora z tabelki identyfikatory i podpięcie do niego dokumentu o takim samym identyfikatorze który może znajdować się w jednej z tabeli:
p_bb p_fd p_k p_mnz p_nzoz p_wn p_xx w_bb w_fd w_mnz w_nzoz w_xx Z tym że jak w identyfikatory.identyfikator = 1, to takie id może znajdować się tylko w jednej z wyżej wymienionych tabel. Kiedy np w tabelce p_bb id =1, to w innych tabelkach nie ma id o takim numerze. Chcę też podpiąć dokument pdf z tabelki dokumenty_pdf (pole nazwa_zalacznika) gdzie każdy wpis posiada unikalne id tak aby połączyć je z określonym dokumentem. Zapytanie zwraca tak jakby dobry wynik, tylko że wyświetla wszystkie pola z selecta na raz: Chodzi mi konkretnie o uzyskanie czegoś takiego: identyfikator|kod|nadawca|adres|nazwa_zalacznika| I tak wszystkie rekordy (tyle ile jest identyfikatorów): identyfikator|nazwa_zalacznika|kod|nadawca|adres| 1|nazwa_zalacznika|kod|nadawca|adres| 2|nazwa_zalacznika|kod|nadawca|adres| 3|nazwa_zalacznika|kod|nadawca|adres| 4|nazwa_zalacznika|kod|nadawca|adres| A uzyskuję: |identyfikator|kod|nadawca|adres|kod|nadawca|adres|kod|nadawca|adres|kod|nadawca |adres|..(i tak ze wszystkich tabel)...|nazwa_zalacznika| Wydaje mi się że brak mi jakichś instrukcji grupujących. Ten post edytował bagsiur 12.01.2011, 14:22:17 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 26.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ponieważ przy select wymieniłeś wszystkie pola które chcesz pobrać:
dlatego otrzymujesz wynik w postaci: |identyfikator|kod|nadawca|adres|kod|nadawca|adres|kod|nadawca|adres|kod|nadawca |adres|..(i tak ze wszystkich tabel)...|nazwa_zalacznika| Spróbuj może użyć IF'a lub CASE'a przy wybieraniu pól żeby sprawdzić które są puste i ich nie wyświetlać. Poczytaj, tutaj też masz parę przykładów: http://dev.mysql.com/doc/refman/5.0/en/con...-functions.html |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.06.2025 - 00:40 |