<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Coś w stylu negacji Inner Joina]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=2232</link>
		<description><![CDATA[Najświeższe odpowiedzi w Coś w stylu negacji Inner Joina.]]></description>
		<lastBuildDate>Wed, 29 Oct 2014 15:41:55 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Coś w stylu negacji Inner Joina]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5371#p5371</link>
			<description><![CDATA[Po prostu poczytaj w dowolnej książce o SQL-u o złączeniach
Masz złączenie typu:
Inner join - złączenie następuje gdy wartości/warunek logiczny są spełnione w obu tebelach 
Left join - złączenie chroni tabelę po lewej stronie czyli wyświetli wszystkie wartości z tabeli po lewej stronie nawet jesli nie znajdzie wartości ich odpowiedników w tabeli po prawej stronie 
Right join - chroniona jest tabela po prawej stronie (czytaj opis do left join-a)
full join - chronione są wartości z obu tabel

Przykład (koniecznie sam poeksperymentuj zmieniając typ złączenia):
With tab1 as (values (1,'a'),(3,'c')),
     tab2 as (values (1,'odpowiednik a'),(2,'odpowiednik b'))
select tab1.*, tab2.*
from tab1 as tab1 (id,nazwa) 
full join tab2 as tab2 (id,nazwa) on tab1.id=tab2.id;]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Wed, 29 Oct 2014 15:41:55 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5371#p5371</guid>
		</item>
		<item>
			<title><![CDATA[Coś w stylu negacji Inner Joina]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5370#p5370</link>
			<description><![CDATA[Witam.
Mam pewien temat który nie wiem za bardzo jak ugryźć, tak kombinuję, może Wy coś podpowiecie. A mianowicie tworzę sobie w bazie tabelę która jest zlepkiem dwóch innych tabel. Wykonuję INNER JOIN-a po numerze_ident. W obu tabelach które join-uje ten numer jest unikalny. I ok, tabelę utworzyłem, wszystko super. Ale mam kilka numerów identyfikacyjnych w tabeli pierwszej które nie występują w tabeli drugiej więc siłą rzeczy w tabeli wynikowej zostaną one pominięte. I teraz co chcę zrobić. Dodałem sobie do zapytania tworzącego mi tabelę wynikową dodatkową kolumnę gdzie wrzucam flagę 'true' i 'false'. I w te wiersze które pomyślnie mi połączył czyli numer ident występował i w jednej i drugiej tabeli wrzucam na końcu flagę 'true'. Następnie chcę wykonać update na tej tabeli wynikowej który zaktualizuje mi ją o te wiersze gdzie ten numer ident występował wyłącznie w pierwszej tabeli a w drugiej nie i na końcu wstawi mi flagę 'false'. Jak myślicie, czy to co opisałem jest wykonalne w jakiś nie skomplikowany sposób?]]></description>
			<author><![CDATA[dummy@example.com (peter)]]></author>
			<pubDate>Wed, 29 Oct 2014 15:17:53 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5370#p5370</guid>
		</item>
	</channel>
</rss>
