<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Złączenie kilku tabel]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=287&amp;type=atom"/>
	<updated>2009-09-11T10:09:12Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=287</id>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1303#p1303"/>
			<content type="html"><![CDATA[No nie do końca, z dwoma tabelami jest ok, z trzema już nie tak pięknie, ale narazie mam inne naciski.

Dzięki za pomoc


Czy mnie się zdaje, ale czas postów jest o godzine do tyłu w porównaniu z bieżącym czasem?
U mnnie jest teraz 12:09]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-11T10:09:12Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1303#p1303</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1302#p1302"/>
			<content type="html"><![CDATA[zatem masz to czego potrzebowales; bardzo sie ciesze;]]></content>
			<author>
				<name><![CDATA[sulavix]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=972</uri>
			</author>
			<updated>2009-09-11T09:13:34Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1302#p1302</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1301#p1301"/>
			<content type="html"><![CDATA[No raczej INNER mnie nie interesuje bo tylko wyswietli równe wiersze w obu tabelach, a ja potrzebuje wszystkie z A i te z B które mają odpowiedniki w A

select godz_planowane,wydz_w_zad,rok,miesiac,
wydzial,robotnicze,nierobotnicze
from tbl_godz_z_planowania_ifs
left join tbl_stan_zatrudnienia on wydz_w_zad=wydzial]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-11T08:33:17Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1301#p1301</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1299#p1299"/>
			<content type="html"><![CDATA[Witam serdecznie; no i jedyny sprawiedliwy ktory podal odpowiedz
[quote=adamleon]
.....
 Dla mnie połączenie to dopasowanie wierszy z wszystkich tabel po wydziale z tbl_godz_z_planowania. ........
[/quote]
switnie; musimy tylko pamietac, ze zlaczenie jest operacja binarna i ma tu znaczenie czy bedzie to A join B czy B join A (nie wchodzac w szczegoly czy mowimy o zlaczeniu wewnetrznym czy zewnetrznym); z ego co piszesz rozumiem, ze tabela tbl_godz_z_planowania ma byc ta A (czyli pierwsza w procesie wykonywania kilku zlaczen)
w tym co ja zaproponowalem jest wlasnie tak ze tabel A to tbl_godz_z_planowania a tabela B jest tbl_stan_satrudnienia; 
[quote]
Jeżeli jakiegoś wydziału nie ma w tbl_godz_z_planowania to ten wydział mnie nie interesuje nawet jeżeli jest w pozostałych tabelach.
[/quote]
powyzsze wskazuje wprost, ze chcesz dokonac zlaczenia A inner join B
zgadza sie czy moze cos pokrecilem]]></content>
			<author>
				<name><![CDATA[sulavix]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=972</uri>
			</author>
			<updated>2009-09-11T08:20:13Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1299#p1299</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1297#p1297"/>
			<content type="html"><![CDATA[Witam 
Pozdrawiam Gdańsk i Kraków :-)

Nie chce warunku where wydz_w_zad = 'AA', chce wszystkie wiersze z tbl_godz_z_planowania i odpowiadające im wiersze z pozostałych tabel gdzie wydział jest taki sam. Dla mnie połączenie to dopasowanie wierszy z wszystkich tabel po wydziale z tbl_godz_z_planowania. Jeżeli jakiegoś wydziału nie ma w tbl_godz_z_planowania to ten wydział mnie nie interesuje nawet jeżeli jest w pozostałych tabelach.
Wynik końcowy może dziwny, ale jeżeli ktoś patrzy z punktu widoku z Excela (tam ma porobione formuły i Arkusze z danymi) i chce te dane tak samo widoczne w PHP, to muszę tak przygotować widok, aby już go gotowego przesłać do PHP i będzie tak jak w Excelu. Zastanawiam się czy to jest możliwe.

Mam nadzieję, że zostanę zrozumiany.]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-11T05:24:20Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1297#p1297</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1290#p1290"/>
			<content type="html"><![CDATA[[quote=rski]To chyba adamleon powinien sprecyzować co dla niego znaczy połączyć. :)[/quote]
w tym konkretnym przypadku tak; ale ja mam na mysli ogolna koncepcje czy logike takich dzialan bez odwolywania sie do konkretnej instancji]]></content>
			<author>
				<name><![CDATA[sulavix]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=972</uri>
			</author>
			<updated>2009-09-09T10:07:47Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1290#p1290</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1289#p1289"/>
			<content type="html"><![CDATA[To chyba adamleon powinien sprecyzować co dla niego znaczy połączyć. :)]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-09-09T10:04:44Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1289#p1289</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1288#p1288"/>
			<content type="html"><![CDATA[zatem mamy piersza czesc naszego rekordu z tabeli tbl_godz_z_planowania czyli:

wydz_w_zad     rok        miesiac     godz_planowane
AA                    2009          2                    123

popatrzymy teraz na druga tabele a mianowicie:

[quote=adamleon]
...
Tabela tbl_stan_zatrudnienia

wydzial    robotnicze    nierobotnicze
AA             11                   22
AX              33                  22
AB             21                   12
.................
[/quote]

i chcemy te tabele (a raczej jej rekordy) polaczyc z pierwsza czescia podana powyzej; ale wogole co to znaczy polaczyc tabele czy konkretniej rekordy z jednej tabeli z rekordami z drugiej; moze to trywialne pytanie ale musimy sobie na nie odpowiedziec; 
prosze o pomoc forumowiczow w odpowiedzi na to pytanie
(cdn...)]]></content>
			<author>
				<name><![CDATA[sulavix]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=972</uri>
			</author>
			<updated>2009-09-09T09:55:57Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1288#p1288</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1287#p1287"/>
			<content type="html"><![CDATA[Możemy pozmieniać, poznęcać się, ale ja dziś nie mogę się za to zabrać, jeżeli masz pomysł to napisz jutro postaram się tym zająć.

Dzięki]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-09T09:32:59Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1287#p1287</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1286#p1286"/>
			<content type="html"><![CDATA[no coz; jak nie kijem go to moze pala; jezeli masz adamleon jeszcze ochote poznecac sie nad soimi tabelami to jestem gotowy;
[quote=adamleon]
....
Tabela tb_godz_z_planowania

wydz_w_zad    rok    miesiac     godz_planowane
AA                2009       2                    123
AB                2009        2                   321
AX                 2009      3                    111
AB                2009       4                     222
[/quote]

zatem mamy pierwsza tabele jak wyzej; czy z jakiegokolwiek powodu chcesz miec na koncu calego procesu formowania zapytania rekord where wydz_w_zad = 'AA'? i skupmy sie tylko na tym rekordzie na razie; pozniej dodamy nastepne i okreslimy sobie dlaczego maja byc w widoku koncowym; zatem wynik naszego zapytania powinien wygladac tak:

wydz_w_zad     rok        miesiac     godz_planowane
AA                    2009          2                    123

ps. czy mozemy zmienic nazwe tej tabeli na: tbl_...... zamiast tb........(poniewaz pozostale tabele maja przedrostek tbl_....)]]></content>
			<author>
				<name><![CDATA[sulavix]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=972</uri>
			</author>
			<updated>2009-09-09T07:30:06Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1286#p1286</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1285#p1285"/>
			<content type="html"><![CDATA[select * from tbl_godz_z_planowania full outer join
   (select foo1.wydzial as w1, * from tbl_stan_zatrudnienia foo1
   full outer join  tbl_wydz_kierownik foo2 on (foo1.wydzial=foo2.wydzial3)) as foo5
   on (wydz_w_zad=foo5.w1);

Jedynie to zapytanie coś zmienia, dodaje wpis z  tbl_wydz_kierownik pozostawiając puste pola z 1 i 2 tabeli w tym rekordzie.
Inne kombinacje left i full nic nie zmieniają w stosunku do wcześniejszego zapytania.]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-08T10:44:20Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1285#p1285</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1284#p1284"/>
			<content type="html"><![CDATA[No bo tak dziala left join. Jak chcesz wszystkich kierowników nie ważne czy są w tbl_stan_zatrudnienia czy nie
to dajesz full outer join (wtedy bedziesz mial wszystkie wiersze ktore sa tylko w tbl_stan_zatrudnienia, wszystkie wiersze które są tylko w tbl_wydz_kierownik i wiersze wspólne.]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-09-08T07:24:44Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1284#p1284</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1283#p1283"/>
			<content type="html"><![CDATA[select * from tbl_godz_z_planowania left join 
   (select foo1.wydzial as w1, * from tbl_stan_zatrudnienia foo1
   left join  tbl_wydz_kierownik foo2 on (foo1.wydzial=foo2.wydzial3)) as foo5
   on (wydz_w_zad=foo5.w1);

Już prawie dobrze
Pokazuje wszystko z tbl_godz_z_planowania, tbl_stan_zatrudnienia, ale z tbl_wydz_kierownik tylko te które mają odpowiedniki w tbl_stan_zatrudnienia. Ale jest nie źle. W wolnym czasie popracuje nad tym. 
Dzięki]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-08T07:20:25Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1283#p1283</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1282#p1282"/>
			<content type="html"><![CDATA[No to w zapytaniu zagnieżdżonym które podałem wystarczy zamienić 'where ...' na left joina i powinno śmigać.
[code]
...
select foo1.wydzial as w1, * from tbl_stan_zatrudnienia foo1 left join  tbl_wydz_kierownik foo2 on (foo1.wydzial=foo2.wydzial)
..
[/code]
Tylko nie przetestowalem bo nie ma postgresa pod reka.]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-09-08T06:56:06Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1282#p1282</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Złączenie kilku tabel]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1281#p1281"/>
			<content type="html"><![CDATA[Witam
Prawie działa, pokazuje wszystkie rekordy z tbl_godz_z_planowania, ale z 2 i 3 tabeli tylko te które są równe np:

wydz_w_zad    rok    miesiac     godz_planowane    wydzial    robotnicze    nierobotnicze    wydzial    kierownik  budynek
    ZZ               1999     11               321     
    AA            2009       2                 123                AA             11               22               AA            Janek       2     
   KK              2000      01                  777
   WW            2009     32                1211             WW            21             32              WW     Józek      B12
  TT              2008       11                  444               

Jeżeli w  tbl_stan_zatrudnienia mam wydziały których nie ma w  tbl_wydz_kierownik to już ich nie pokazuje.
To i tak już coś. Kiedy znajdę chwilę i rozwiążę problem to napiszę.
Dzięki]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-08T05:18:47Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1281#p1281</id>
		</entry>
</feed>
