[SQL] laczenie tabel o roznych kolumnach |
[SQL] laczenie tabel o roznych kolumnach |
3.06.2011, 11:41:56
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 11.02.2011 Ostrzeżenie: (0%) |
Witam
Tabela 1 ID |a |b| c |d |e 1 |2| 3| 4| 5 |6 3 |d|d | d|d |d Tabela 2 UID |r | t | y| u | i | O 1 |7 |1c| f |dsd|w|234 Tabela 3 O | a | f | g | h 234|7e|4e|3e|e W jednym zapytaniu chcę pobrać dane Z tabeli jeden gdzie ID=1 (cde) Z tabeli 2 gdzie ID z pierwszej =UID z drugiej(u,i) Z tabeli 3 gdzie O=O z tabeli drugiej(f,g,h) Czyli chcę taki wynik c|d|e |u | i |f |g |h 4|5|6|dsd|w|4e|3e|e Oczywiście standardowo szukałem w różnych źródłach ale jakoś tego nie łapię,oprócz rozwiązania byłbym bardzo wdzięczny za wytłumaczenie ponieważ chcę to umieć i rozumieć,najlepiej na różnych przykładach,zdaje się że chodzi o JOIN ale nie wiem jak tego użyć po przeczytaniu tych wszystkich kursów. |
|
|
3.06.2011, 11:59:15
Post
#2
|
|
Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) |
Ogólnie jeśli dobrze zrozumiałem twój pomysł masz tak
Tabela 1 - kolumna ID jest kluczem do Tabeli 2 (uid) a z tabeli 2 klucz do tabeli 3 to O Nie jestem b. dobry w tłumaczeniu ale spróbuje ci to wytłumaczyć Do łączenia używasz JOIN (left join, right join, join) w moim przypadku użyje left joina, komunikujamy się między tabelami dzięki kluczą (komenda w sql ON) jak już wcześniej wspomniałem ID -> UID -> O -> o
Pamiętaj, że używając JOINa musisz mieć jakieś klucz, wg którego chcesz się łączyć między tabelami Ten post edytował Hpsi+ 3.06.2011, 12:00:35 -------------------- Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas === po prostu kocham ją :D haha |
|
|
3.06.2011, 15:19:57
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 11.02.2011 Ostrzeżenie: (0%) |
A co w sytuacji gdy w jednej z tabel jakiś rekord występuje 3 razy i nie chcę używać while do wyciągania a odwoływać się do niego np. jak do tablicy
chodzi mi o taką sytuację id nazwa 2 aaa 2 bbb 2 ccc 3 d 4 e 5 r nazwa[0]=aaa nazwa[2]=bbb nazwa[3]=ccc chodzi mi o taka sytuacje ze gdy wyciągam dane z 3 tabel jednym zapytaniem to po wyświetleniu w najprostszy sposób otrzymam pierwszy powtarzający się rekord,gdybym robił to 'while'm i do tej konkretnej tabeli w ktorej mi sie powtarza do dostał bym wszystkie nazwy dla id=2 a tu dostaję pierwszą i nie wiem jak dostać się do pozostałych. czyli taka sytuacja Tab1 id a b c 1 2 3 4 2 r r r z tej rekord c ktore ma id 1 Tab 2 id f g h 1 2 3 4 4 f f f z tej h ktore ma id 1 tab 3 id g h j 1 sddd d d 1 ddd d d 1 dfff f f a z tej g ktore ma id 1 Chodzilo o to aby z tych 3 tabel wyciągnąć to co ma id 1 Gdy zaś zrobie to 'while'na tym zapytanie wyciągnę pewnie te 2 brakujące rekordy ale razem z nimi całe zapytanie zrobię 3 razy o ile oczywiście dobrze myślę. Ten post edytował modziar 3.06.2011, 15:26:02 |
|
|
Wersja Lo-Fi | Aktualny czas: 6.06.2024 - 17:21 |