Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pola powiązanych ze sobą rekordów
mzg
post 3.10.2013, 11:46:10
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 3.10.2013

Ostrzeżenie: (0%)
-----


Witam, na codzień piszę w Javie, z MySql mam problem. Otóż:
mam bazę danych w której znajduje się tabela dok_Dokument. Każdy rekord tej tabeli zawiera pola
dok_Typ - typ dokumentu (np "1". "2", "3")
dok_NumerPelny - pełna nazwa dokumentu (Np "PW 10", "PW 11", "RW 15", "RW 45")
dok_DoDokNumerPelny (Np "RW 10", "RW 11", "PW 18", "PW 145")
dok_WartMag - pole z wartością, np "145,48"

Dokumenty o dok_Typ = "1" są powiązane z dok_Typ = "2", poprzez pole dok_DoDokNumerPelny, które wskazuje na określony rekord.

Aby wylistować dokumenty typu "1" używam:
Kod
SELECT
dok_NrPelny as 'Numer Dokumentu', dok_DoDokNrPelny as 'Powiązany', dok_WartMag as 'Koszt' FROM
Dok__Dokument
WHERE
dbo.dok__Dokument.dok_Typ in (1) AND (dok_DataWyst BETWEEN {D: Okres od:} AND {D: Okres do})
ORDER BY
dok_DataWyst;


Teraz: chodzi mi o to, by zmienić powyższy kod tak, aby obok kolumny z dok_WartMag rekordu dok_Typ = "1" , pokazać kolumnę dok_WartMag powiązanego z nim rekordu dok_Typ = "2".
Ma ktoś pomysł?
Go to the top of the page
+Quote Post
bpskiba
post 7.10.2013, 14:08:18
Post #2





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


  1. SELECT *
  2. FROM Dok__Dokument d1
  3. JOIN Dok__Dokument d2 USING(dok_DoDokNumerPelny)
  4. WHERE
  5. d1.dok_Typ IN (1) AND (d1.dok_DataWyst BETWEEN {D: Okres od:} AND {D: Okres do})


tak z palca bez sprawdzenia....
Ogólnie możesz łączyć tabelę z nią samą, ale musisz używać aliasów nazw
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:19