Article View: pl.comp.lang.delphi.bazy-danych
Article #82605[MySQL] Dwa klucze obce z jednej tabeli
From: Marek Cz.
Date: Wed, 28 Oct 2015 20:50
Date: Wed, 28 Oct 2015 20:50
58 lines
2751 bytes
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-mailShow 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