Thread View: pl.comp.lang.delphi.bazy-danych
8 messages
8 total messages
Started by Marek Cz.
Wed, 28 Oct 2015 20:50
[MySQL] Dwa klucze obce z jednej tabeli
Author: 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
Re: [MySQL] Dwa klucze obce z jednej tabeli
Author: arivald
Date: Thu, 29 Oct 2015 06:32
Date: Thu, 29 Oct 2015 06:32
81 lines
3373 bytes
3373 bytes
W dniu 2015-10-28 o 21:50, Marek Cz. pisze: > > 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ę. tu akurat MUSISZ użyć aliasów w joinach, żeby rozróżnić wiązania po różnych kluczach. A apliasy i tak się przydają, do skracania tekstu SQLa. select s.Serial, d.DeviceName, c.CreatedBy as CreatedByFirstName, c.LastName as CreatedByLastName, m.FirstName as ModifiedByFirstName, m.LastName as ModifiedByLastNam from Serials s left join Devices d on d.ID = s.DeviceType left join Users c on c.ID = s.CreatedBy left join Users m on m.ID = s.ModifiedBy -- Arivald
Re: [MySQL] Dwa klucze obce z jednej tabeli
Author: Marek
Date: Thu, 29 Oct 2015 14:13
Date: Thu, 29 Oct 2015 14:13
60 lines
3000 bytes
3000 bytes
Użytkownik "Marek Cz." <nomail@wp.pl> napisał w wiadomości news:xn0jstcud1iyaee001@news.atman.pl... > > 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ę. Już nieaktualne. -- Marek
Re: [OT] [MySQL] Dwa klucze obce z jednej tabeli
Author: wloochacz
Date: Thu, 29 Oct 2015 19:01
Date: Thu, 29 Oct 2015 19:01
10 lines
1480 bytes
1480 bytes
W dniu 2015-10-29 o 15:13, Marek pisze: > Już nieaktualne. A uj nas obchodzi, czy aktualne. Zadałeś podstawowe pytanie, na które google wypluje odpowiedź w 0,0002s Przyzwoitość podpowiada, że zamiast "nieaktualne" powinieneś napisać "dziękuję". -- wloochacz
Re: [OT] [MySQL] Dwa klucze obce z jednej tabeli
Author: Marek Cz.
Date: Thu, 29 Oct 2015 21:37
Date: Thu, 29 Oct 2015 21:37
24 lines
1940 bytes
1940 bytes
Użytkownik "wloochacz" <wloochacz@no.spam.gmail.com> napisał w
wiadomości news:xn0jstcud1iyaee001@news.atman.pl...
>W dniu 2015-10-29 o 15:13, Marek pisze:
>>Już nieaktualne.
>A uj nas obchodzi, czy aktualne.
>Zadałeś podstawowe pytanie, na które google wypluje odpowiedź w 0,0002s
>
>Przyzwoitość podpowiada, że zamiast "nieaktualne" powinieneś napisać
>"dziękuję".
Zdziwiłem się, za co powinienem napisać "dziękuję", skoro nie otrzymałem żadnej
odpowiedzi, jak się jednak okazało, odpowiedział kolega Arivald, za co mu bardzo
dziękuję, lecz odpowiedzi tej nie ma niestety na serwerze grup z którego korzystam
(news.atman.pl), znalazłem ją potem na grupach google. Muszę zmienić
serwer
grup, bo nie wszystkie posty dochodzą. Może jakiś polecicie bez
ograniczeń
dostępu?
Jeszcze apropos mojego pytania, to jakie słowa kluczowe należałoby wpisać
w google, żeby znaleźć odpowiedź na to moje "podstawowe pytanie"?
--
Marek
Re: [OT] [MySQL] Dwa klucze obce z jednej tabeli
Author: wloochacz
Date: Fri, 30 Oct 2015 10:30
Date: Fri, 30 Oct 2015 10:30
30 lines
2253 bytes
2253 bytes
W dniu 2015-10-29 o 22:37, Marek Cz. pisze: > Użytkownik "wloochacz" <wloochacz@no.spam.gmail.com> napisał w > wiadomości news:xn0jstcud1iyaee001@news.atman.pl... >> W dniu 2015-10-29 o 15:13, Marek pisze: >>> Już nieaktualne. >> A uj nas obchodzi, czy aktualne. >> Zadałeś podstawowe pytanie, na które google wypluje odpowiedź w 0,0002s >> >> Przyzwoitość podpowiada, że zamiast "nieaktualne" powinieneś napisać >> "dziękuję". > > Zdziwiłem się, za co powinienem napisać "dziękuję", skoro nie > otrzymałem żadnej > odpowiedzi, jak się jednak okazało, odpowiedział kolega Arivald, za co > mu bardzo > dziękuję, lecz odpowiedzi tej nie ma niestety na serwerze grup z > którego korzystam > (news.atman.pl), znalazłem ją potem na grupach google. Muszę zmienić serwer > grup, bo nie wszystkie posty dochodzą. Może jakiś polecicie bez ograniczeń > dostępu? OK, to wiele tłumaczy. > Jeszcze apropos mojego pytania, to jakie słowa kluczowe należałoby > wpisać > w google, żeby znaleźć odpowiedź na to moje "podstawowe pytanie"? Np tak: http://bfy.tw/2Xtk -- wloochacz
Re: [OT] [MySQL] Dwa klucze obce z jednej tabeli
Author: miab
Date: Fri, 30 Oct 2015 11:19
Date: Fri, 30 Oct 2015 11:19
24 lines
2226 bytes
2226 bytes
W dniu 2015-10-29 o 22:37, Marek Cz. pisze: > Użytkownik "wloochacz" <wloochacz@no.spam.gmail.com> napisał w > wiadomości news:xn0jstcud1iyaee001@news.atman.pl... >> W dniu 2015-10-29 o 15:13, Marek pisze: >>> Już nieaktualne. >> A uj nas obchodzi, czy aktualne. >> Zadałeś podstawowe pytanie, na które google wypluje odpowiedź w 0,0002s >> >> Przyzwoitość podpowiada, że zamiast "nieaktualne" powinieneś napisać >> "dziękuję". > > Zdziwiłem się, za co powinienem napisać "dziękuję", skoro nie > otrzymałem żadnej > odpowiedzi, jak się jednak okazało, odpowiedział kolega Arivald, za co > mu bardzo > dziękuję, lecz odpowiedzi tej nie ma niestety na serwerze grup z > którego korzystam > (news.atman.pl), znalazłem ją potem na grupach google. Muszę zmienić serwer > grup, bo nie wszystkie posty dochodzą. Może jakiś polecicie bez ograniczeń > dostępu? Zobacz news.neostrada.pl miab
Re: [OT] [MySQL] Dwa klucze obce z jednej tabeli
Author: Marek
Date: Mon, 02 Nov 2015 06:19
Date: Mon, 02 Nov 2015 06:19
34 lines
2375 bytes
2375 bytes
Użytkownik "wloochacz" <wloochacz@no.spam.gmail.com> napisał w wiadomości news:563346ca$0$640$65785112@news.neostrada.pl... >W dniu 2015-10-29 o 22:37, Marek Cz. pisze: >> Użytkownik "wloochacz" <wloochacz@no.spam.gmail.com> napisał w >> wiadomości news:xn0jstcud1iyaee001@news.atman.pl... >>> W dniu 2015-10-29 o 15:13, Marek pisze: >>>> Już nieaktualne. >>> A uj nas obchodzi, czy aktualne. >>> Zadałeś podstawowe pytanie, na które google wypluje odpowiedź w 0,0002s >>> >>> Przyzwoitość podpowiada, że zamiast "nieaktualne" powinieneś napisać >>> "dziękuję". >> >> Zdziwiłem się, za co powinienem napisać "dziękuję", skoro nie >> otrzymałem żadnej >> odpowiedzi, jak się jednak okazało, odpowiedział kolega Arivald, za co >> mu bardzo >> dziękuję, lecz odpowiedzi tej nie ma niestety na serwerze grup z >> którego korzystam >> (news.atman.pl), znalazłem ją potem na grupach google. Muszę zmienić serwer >> grup, bo nie wszystkie posty dochodzą. Może jakiś polecicie bez ograniczeń >> dostępu? > OK, to wiele tłumaczy. > >> Jeszcze apropos mojego pytania, to jakie słowa kluczowe należałoby >> wpisać >> w google, żeby znaleźć odpowiedź na to moje "podstawowe pytanie"? > Np tak: > http://bfy.tw/2Xtk Dzięki -- Marek
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads