|
PORADY - tysiące sprawdzonych rozwiązań dla programistów i webmasterów aktualizacja porady: 2005-07-26 08:54:54
[MySQL] Jak dokonać złączenia tabel w jedną, z dodatkowymi kolumnami.
PROBLEM
Chcesz połączyć tabele w jedną, która będzie miała kolumny zarówno z jednej tabeli, jak i drugiej.
ROZWIĄZANIEnoselect
To chyba najczęściej dokonywana operacja złączenia tabel w jedną, która ma zarówno kolumny z pierwszej tabeli, jak i z drugiej. Jest to na tyle podstawowa i ważna operacja, że trudno byłoby sobie wyobrazić bez niej funkcjonowanie złożonych zapytań do bazy.
Prześledźmy najpierw, jaki jest cel korzystania ze złączeń i kiedy się je stosuje. Stwórzmy dwie tabele - jedną z osobami:
CREATE TABLE osoby (
id INT NOT NULL PRIMARY KEY auto_increment,
imie VARCHAR(50),
nazwisko VARCHAR(70) NOT NULL
);
INSERT INTO osoby VALUES (1,"Jan","Kowalski");
INSERT INTO osoby VALUES (2,"Anna","Kicha");
INSERT INTO osoby VALUES (3,"Robert","Kwak");
INSERT INTO osoby VALUES (4,"Julia","Murek");
Jest to zupełnie niezależna tabela, którą może prowadzić ktoś, kto nie ma pojęcia o innych tabelach w bazie. Po prostu dodaje/rejestruje kolejne osoby, co "na oko" wygląda tak:
+----+--------+----------+
| id | imie | nazwisko |
+----+--------+----------+
| 1 | Jan | Kowalski |
| 2 | Anna | Kicha |
| 3 | Robert | Kwak |
| 4 | Julia | Murek |
+----+--------+----------+
Stwórzmy teraz kolejną tabelę, która będzie zawierała książki (same tytuły dla uproszczenia) z informacją, kto je aktualnie pożyczył (jest w tej chwili jej właścicielem):
CREATE TABLE ksiazki (
id INT NOT NULL PRIMARY KEY auto_increment,
wlasciciel INT,
tytul VARCHAR(50)
);
INSERT INTO ksiazki VALUES (1,4,"Przeminęło z wiatrem");
INSERT INTO ksiazki VALUES (2,1,"Ogniem i mieczem");
INSERT INTO ksiazki VALUES (3,3,"Wielki marsz");
INSERT INTO ksiazki VALUES (4,1,"Wprowadzenie do psychologii");
INSERT INTO ksiazki VALUES (5,2,"Jak Wojtek został strażakiem");
INSERT INTO ksiazki VALUES (6,0,"Czterej pancerni i pies");
Ta tabela też może być tworzona niezależnie. Ktoś może wpisywać książki, jakie są na stanie np. biblioteki, dając jako aktualnego właściciela identyfikator 0. Ktoś inny, może potem przypisać książkom osoby, które te książki wypożyczyły. Osoby zostały wpisywane oczywiście nie po nazwiskach, ale ich identyfikatorach.
Wpisanie wprost ich nazwisk i innych danych nie byłoby dobre z punktu widzenia projektowania baz danych, a także z powodów czysto praktycznych - nazwisko czy inne dane osoby (np. adres) mogą się zmieniać w czasie, a identyfikator się nie zmieni.
Do rekordów dodałem więc od razu identyfikatory osób i identyfikator zerowy, gdzie książka nie została wypożyczona przez nikogo.
+----+------------+------------------------------+
| id | wlasciciel | tytul |
+----+------------+------------------------------+
| 1 | 4 | Przeminęło z wiatrem |
| 2 | 1 | Ogniem i mieczem |
| 3 | 3 | Wielki marsz |
| 4 | 1 | Wprowadzenie do psychologii |
| 5 | 2 | Jak Wojtek został strażakiem |
| 6 | 0 | Czterej pancerni i pies |
+----+------------+------------------------------+
Mamy więc dwie tabele. Oczywiste jest, że zechcemy sprawdzić, kto ma jakie książki. A więc interesuje nas tabela w takim kształcie:
+------------------------------+--------+----------+
| tytul | imie | nazwisko |
+------------------------------+--------+----------+
| Ogniem i mieczem | Jan | Kowalski |
| Wprowadzenie do psychologii | Jan | Kowalski |
| Jak Wojtek został strażakiem | Anna | Kicha |
| Wielki marsz | Robert | Kwak |
| Przeminęło z wiatrem | Julia | Murek |
+------------------------------+--------+----------+
Aby uzyskać taką tabelę należy połączyć w locie dwie wspomniane tabele (dokonać złączenia). Złączenie, zresztą jedno z wielu w MySQL, nie jest trudne, a szalenie przydatne w praktyce, jak pokazałem na powyższym przykładzie. Skonstruujmy takie zapytanie.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UWAGA! To tylko fragment strony! Całą zobaczysz po opłaceniu abonamentu!
|
ZALOGUJ SIĘ I ZAMÓW ABONAMENT ABY KORZYSTAĆ Z TEJ CZĘŚCI SERWISU
|
|
|
Dostęp do oglądanej strony jest płatny.
Całą zawartość strony zobaczysz
po zalogowaniu się i opłaceniu abonamentu.
Jeżeli nie masz konta użytkownika, założ konto!
|
|
Oto garść powodów, dla których warto założyć konto użytkownika:
Założenie konta użytkownika jest proste i bezpłatne.
Od razu zobaczysz kilka wybranych porad gratis.
Po opłaceniu abonamentu otrzymasz dostęp do wszystkich porad.
Zaprenumerujesz przydatny newsletter z poradami i nowościami.
Będziesz mieć dostęp do własnej, wygodnej aktówki i profilu.
Zyskasz możliwość korzystania z różnych promocji i upustów dla klientów serwisu.
Oto garść powodów, dla których warto zamówić abonament:
W jednym miejscu znajdziesz tysiące fachowych porad, kursy, encyklopedię pojęć oraz przydatne narzędzia, dzięki czemu nie tracisz czasu, impulsów telefonicznych i pieniędzy na pozyskiwanie wiedzy. Tutaj dostaniesz gotowe i sprawdzone rozwiązania problemów, z którymi spotykasz się w praktyce.
Dzięki poradom dowiesz się, w jaki sposób wykorzystać najnowsze technologie, aby tworzyć profesjonalne serwisy i rozwiązania. Doradzę Ci, jak skonstruować i wypromować swoje strony, zwiększyć oglądalność, pozyskać klientów i rozwinąć biznes w Internecie, który będzie przynosił zyski!
Kody programów i skrypty działają natychmiast po wstawieniu ich na strony WWW. Tylko tutaj znajdziesz tak wiele unikatowych algorytmów, autorskich pomysłów i przydatnych artykułów. Dowiesz się, jak zapewnić bezpieczeństwo, zwiększyć wydajność oprogramowania i poprawić jakość serwisów WWW i baz danych.
Od kilkunastu lat zajmuję się zawodowo programowaniem oraz tworzeniem stron WWW, co gwarantuje bardzo wysoką jakość i skuteczność opisywanych rozwiązań. Potwierdzają to opinie użytkowników. Możesz też liczyć na pomoc i wsparcie przy wdrażaniu porad na własnej stronie.
Nie musisz wydawać kilku tysięcy złotych na programistów, konsultantów, promocję czy też reklamę swojej witryny. Te same efekty osiągniesz czytając porady i stosując się do konkretnej wiedzy, która podana jest w sposób przyjazny nawet dla laika.
Nigdzie nie kupisz książek, czasopism i publikacji, które w cenie abonamentu dostarczą Ci tak wiele gotowych rozwiązań. Na żadnych szkoleniach i kursach nie zdobędziesz tylu praktycznych umiejętności i wiadomości. Dzięki zdobytej wiedzy znacznie podniesiesz swoje kwalifikacje i znajdziesz o wiele lepszą pracę.
Z serwisu korzystają zarówno początkujący webmasterzy, jak i największe polskie firmy, banki, dostawcy usług internetowych, wykładowcy, webdeweloperzy oraz agencje interaktywne. To potwierdzenie jakości i wysokiego poziomu informacji - sprawdzanej i weryfikowanej w praktyce przez wielu niezależnych klientów.
Zamawiając abonament pomagasz rozwijać serwis, który będzie Ci służyć jeszcze większą ilością porad i rozwiązań, lepszym wsparciem technicznym oraz unikatowymi, fachowymi publikacjami, których realizacja wymaga ogromnych nakładów czasu i pracy.
Skorzystasz z Programu Partnerskiego - biorąc w nim udział możesz zapewnić sobie BEZPŁATNY dostęp do serwisu z poradami!
Słowa kluczowe dla porady złączenie, złączyć, połączyć, złączenia, baza danych mysql, bazy danych, kurs mysql, złączanie tabel, łączenie tabel, złączenia tabel w bazie danych, złączenie tabel
|