Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Łączenie dwóch tabel

2,679 views
Skip to first unread message

Adam

unread,
Aug 4, 2010, 1:27:34 PM8/4/10
to
Witam wszystkich,

nie wiem, jak w Access 2007 połączyć dwie tabele. Chodzi mi o scalenie
kolumn z danymi z dwóch tabel. Dotychczasowe próby spełzły na niczym.
Z góry dziękuję za wszystkie sugestie.

Pozdrawiam serdecznie
Adam

Przemysław Rachwał

unread,
Aug 4, 2010, 1:28:27 PM8/4/10
to
W dniu 2010-08-04 19:27, Adam pisze:

select * from tabela_1
union all
select * from tabela_2

--
Przemek

Adam

unread,
Aug 5, 2010, 5:11:24 AM8/5/10
to
On 4 Sie, 19:28, Przemysław Rachwał <przemyslaw.rach...@onet.pl>
wrote:

Witam,

dziękuję za odpowiedź. Nie wyraziłem się jasno w poprzednim poście,
ale chodzi mi o inną rzecz. Mianowicie, mam dwie tabele. Tabela_1
posiada kolumny A, B, C, D. Tabela_2 posiada kolumny E, F. I teraz,
jak dodać kolumny z tabeli_2 do tabeli_1, żeby w tabeli_1 było
widocznych 6 kolumn. Obydwie tabele mają taką samą liczbę rekordów,
ale różną liczbę kolumn.
Dotychczasowe starania prowadziły do zsumowania rekordów z dwóch
tabel, co czyniło bazę zupełnie nieczytelną.
Z góry dziękuję za podpowiedzi.

Pozdrawiam
Adam

Krzysztof Pozorek

unread,
Aug 5, 2010, 4:16:46 PM8/5/10
to
(...)

> Nie wyraziłem się jasno w poprzednim poście,
> ale chodzi mi o inną rzecz. Mianowicie, mam dwie tabele. Tabela_1
> posiada kolumny A, B, C, D. Tabela_2 posiada kolumny E, F. I teraz,
> jak dodać kolumny z tabeli_2 do tabeli_1, żeby w tabeli_1 było
> widocznych 6 kolumn. Obydwie tabele mają taką samą liczbę rekordów,
> ale różną liczbę kolumn.

A skad wiadomo, ktory rekord polaczyc z ktorym? Twoje zadanie jest proste,
jesli okreslisz pole po ktorym te tabele maja byc polaczone. Powiedzmy, ze
obie tabele maja klucz ID, wtedy kwerenda, ktora wyswietli wszystkie pola
wyglada nastepujaco:
select a,b,c,d,e,f
from tabela1, tabela2
where tabela1.id=tabela2.id

K.P.

Adam

unread,
Aug 6, 2010, 5:53:53 AM8/6/10
to

Witam,

bardzo dziękuję. Działa idealnie.

Pozdrawiam serdecznie
Adam

Adam

unread,
Aug 11, 2010, 4:24:14 PM8/11/10
to
On 5 Sie, 22:16, "Krzysztof Pozorek" <acc...@vis.pl> wrote:

Witam wszystkich,

wracam jeszcze raz do kwestii łączenia kolumn z różnych tabel. Tym
razem mam problem z tabelami, które mają różną liczbę rekordów. To, co
je łączy, to identyczne identyfikatory w niektórych rekordach. Tabela
A ma 2500 rekordów, a tabela B tylko 18. Zastosowanie powyższego
polecenia zwróci tylko 18 rekordów, ale co zrobić, żeby kwerenda
wyświetliła 2500 rekordów? Z góry dziękuję za wszystkie podpowiedzi.

Pozdrawiam
Adam

Krzysztof Naworyta

unread,
Aug 12, 2010, 5:13:48 AM8/12/10
to
Adam wrote:

|| (...)
||| Nie wyraziłem się jasno w poprzednim poście,
||| ale chodzi mi o inną rzecz. Mianowicie, mam dwie tabele. Tabela_1
||| posiada kolumny A, B, C, D. Tabela_2 posiada kolumny E, F. I teraz,
||| jak dodać kolumny z tabeli_2 do tabeli_1, żeby w tabeli_1 było
||| widocznych 6 kolumn. Obydwie tabele mają taką samą liczbę rekordów,
||| ale różną liczbę kolumn.
||
|| A skad wiadomo, ktory rekord polaczyc z ktorym? Twoje zadanie jest
|| proste, jesli okreslisz pole po ktorym te tabele maja byc polaczone.
|| Powiedzmy, ze obie tabele maja klucz ID, wtedy kwerenda, ktora
|| wyswietli wszystkie pola wyglada nastepujaco:
|| select a,b,c,d,e,f
|| from tabela1, tabela2
|| where tabela1.id=tabela2.id

| wracam jeszcze raz do kwestii łączenia kolumn z różnych tabel. Tym
| razem mam problem z tabelami, które mają różną liczbę rekordów. To, co
| je łączy, to identyczne identyfikatory w niektórych rekordach. Tabela
| A ma 2500 rekordów, a tabela B tylko 18. Zastosowanie powyższego
| polecenia zwróci tylko 18 rekordów, ale co zrobić, żeby kwerenda
| wyświetliła 2500 rekordów? Z góry dziękuję za wszystkie podpowiedzi.


KP podał Ci, nie wiem czemu, postać kwerendy z tzw. połączeniem klasycznym,
czyli za pomocą warunku WHERE.
W wiekszości języków SQL uzywa się do tego celu JOIN:

select a,b,c,d,e,f
from
tabela1 INNER JOIN tabela2
ON
tabela1.id=tabela2.id

Zaś jeśli chcesz zwrócić wszystkie rekordy jednej z tabel, stosuje się JOIN
"otwarty":


select a,b,c,d,e,f
from
tabela1 LEFT JOIN tabela2
ON
tabela1.id=tabela2.id

Po więcej odsyłem do jakiegoś kursu ABC access'a, bo to o co pytasz to
podstawy.

--
KN

Adam

unread,
Aug 13, 2010, 5:46:47 AM8/13/10
to
On 12 Sie, 11:13, "Krzysztof Naworyta" <k.nawor...@datacomp.com.pl>
wrote:

Witam,

bardzo dziękuję za wskazówki.

Pozdrawiam
Adam

0 new messages