Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pola powiązanych ze sobą rekordów
Forum PHP.pl > Forum > Bazy danych > MySQL
mzg
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ł?
bpskiba
  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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.