🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #82605

[MySQL] Dwa klucze obce z jednej tabeli

#82605
From: Marek Cz.
Date: Wed, 28 Oct 2015 20:50
58 lines
2751 bytes
  W uproszczeniu są trzy tabele, Serials (główna), Users i Devices:

  Serials:
    ID: INTEGER
    Serial: VARCHAR(20)
    DeviceType: INTEGER (klucz obcy Devices.ID)
    CreatedBy: INTEGER  (klucz obcy Users.ID)
    ModifiedBy: INTEGER (klucz obcy Users.ID)

  Users:
    ID: INTEGER
    FirstName: VARCHAR(50)
    LastName: VARCHAR(50)

  Devices:
   ID: INTEGER
   DeviceName: VARCHAR(20)

  Jakie powinno być zapytanie do bazy, aby przedstawić całą główną tabelę "Serials",
  w której klucze obce zostaną zastąpione nazwami z tabel "Users" i "Devices",
  czyli wynikowa tabela będzie miała kolumny np. takie:

  Serial
  DeviceName
  CreatedByFirstName
  CreatedByLastName
  ModifiedByFirstName
  ModifiedByLastName

gdzie

   Serial: pochodzi oczywiście z tabeli Serials

   DeviceName: nazwa urządzenia z tabeli Devices.DeviceName określona
                          na podstawie klucza Serials.DeviceType

  CreatedByFirstName: imię użytkownika z tabeli Users.FirstName określone
                                      na podstawie klucza Serials.CreatedBy

  CreatedByLastName: nazwisko użytkownika z tabeli Users.LastName określone
                                      na podstawie klucza Serials.CreatedBy

  ModifiedByFirstName: imię użytkownika z tabeli Users.FirstName określone
                                       na podstawie klucza Serials.ModifiedBy

  ModifiedByLastName: nazwisko użytkownika z tabeli Users.LastName określone
                                       na podstawie klucza Serials.ModifiedBy

  Jak można zauważyć, w tabeli "Serials" występują dwie kolumny CreatedBy i ModifiedBy
   z kluczami obcymi powiązanymi z ID z jednej tabeli, czyli  "Users". Wartości tych kluczy
  mogą być różne w jednym rekordzie i dlatego nie wiem, jak skonstruować zapytanie,
  aby uzyskać oczekiwaną tabelę.

Proszę o pomoc :)

-- 
Marek
Technical Details
Message-ID: <xn0jstcud1iyaee001@news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: "Marek Cz." <nomail@wp.pl>
Newsgroups: pl.comp.lang.delphi.bazy-danych
Subject: [MySQL] Dwa klucze obce z jednej tabeli
Date: Wed, 28 Oct 2015 20:50:10 +0000 (UTC)
Organization: ATMAN - ATM S.A.
Lines: 58
Message-ID: <xn0jstcud1iyaee001@news.atman.pl>
NNTP-Posting-Host: host8.router8.tygrys.net
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1446065410 12276 213.108.119.8 (28 Oct 2015 20:50:10 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Wed, 28 Oct 2015 20:50:10 +0000 (UTC)
User-Agent: XanaNews/1.19.1.372 (x86; Portable ISpell)
X-Ref: news.atman.pl ~XNS:000001C1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit